Перейти до основного вмісту
Головна
нотатки кодера

Navigation

  • Головна
  • Про мене
  • Документація
  • Портфоліо
User account menu
  • Вхід

Рядок навіґації

  1. Головна

OpenCart облік прибутку

від vetal, 14 березня, 2011
Категорія
Програмування
  • Щоб додати коментар, увійдіть або зареєструйтесь

1. Додав поле в базу, в таблицю order:

Ім'я: cost 

Тип: decimal(15,4) 

За замовчуванням: 0.0000 

2. В admin/view/template/report/sale.tpl 

<?php echo $column_date_start; ?> 
<?php echo $column_date_end; ?> 
<?php echo $column_orders; ?> 
<?php echo $column_total; ?> 
<?php if ($orders) { ?> 
<?php   foreach ($orders as $order) { ?> 
<?php     echo $order['date_start']; ?> 
<?php     echo $order['date_end']; ?> 
<?php     echo $order['orders']; ?> 
<?php     echo $order['total']; ?> 
<?php   } ?> 
<?php } else { ?> 
<?php   echo $text_no_results; ?> 
<?php } ?> 

на 

<?php echo $column_date_start; ?> 
<?php echo $column_date_end; ?> 
<?php echo $column_orders; ?> 
<?php echo $column_cost; ?> 
<?php echo $column_total; ?> 
<?php if ($orders) { ?> 
<?php   foreach ($orders as $order) { ?> 
<?php     echo $order['date_start']; ?> 
<?php     echo $order['date_end']; ?> 
<?php     echo $order['orders']; ?> 
<?php     echo $order['cost']; ?> 
<?php     echo $order['total']; ?> 
<?php   } ?> 
<?php   echo $column_total; ?> 
<?php   echo $cost_total; ?> 
<?php   echo $total_total; ?> 
<?php   echo $column_profit; ?> 
<?php   echo $profit; ?> 
<?php } else { ?> 
<?php   echo $text_no_results; ?> 
<?php } ?> 

3. B admin/controler/report/sale.php

foreach ($results as $result) { 
  $this->data['orders'][] = array( 
    'date_start' => date($this->language->get('date_format_short'), trtotime($result['date_start'])), 
    'date_end' => date($this->language->get('date_format_short'), strtotime($result['date_end'])), 
    'orders' => $result['orders'], 
    'total' => $this->currency->format($result['total'], $this->config->get('config_currency')) 
  ); 
} 

на 

$this->data['cost_total']=0; 
$this->data['total_total']=0; 
foreach ($results as $result) { 
  $this->data['cost_total'] += $result['cost']; 
  $this->data['total_total'] += $result['total']; 
  $this->data['orders'][] = array( 
    'date_start' => date($this->language->get('date_format_short'), strtotime($result['date_start'])), 
    'date_end' => date($this->language->get('date_format_short'), strtotime($result['date_end'])), 
    'orders' => $result['orders'], 
    'cost' => $this->currency->format($result['cost'], $this->config->get('config_currency')), 
    'total' => $this->currency->format($result['total'], $this->config->get('config_currency')) 
  ); 
}
 
$this->data['profit'] = $this->currency->format($this->data['total_total'] - $this->data['cost_total'], $this->config->get('config_currency')); 
$this->data['cost_total'] = $this->currency->format($this->data['cost_total'], $this->config->get('config_currency')); 
$this->data['total_total'] = $this->currency->format($this->data['total_total'], $this->config->get('config_currency')); 
$this->data['column_profit'] = $this->language->get('column_profit'); $this->data['column_cost'] = $this->language->get('column_cost'); 

4. B admin/module/report/sale.php 

$sql = "SELECT MIN(date_added) AS date_start, MAX(date_added) AS date_end, COUNT(*) AS orders, SUM(total) AS total FROM `" . DB_PREFIX . "order`"; 

на

$sql = "SELECT MIN(date_added) AS date_start, MAX(date_added) AS date_end, COUNT(*) AS orders, SUM(total) AS total, SUM(cost) AS cost FROM `" . DB_PREFIX . "order`"; 

5. В catalog/model/checkout/order.php 

 $this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET store_id = '" . (int)$data['store_id'] 
   . "', store_name = '" . $this->db->escape($data['store_name']) 
   . "', store_url = '" . $this->db->escape($data['store_url']) 
   . "', customer_id = '" . (int)$data['customer_id'] 
   . "', customer_group_id = '" . (int)$data['customer_group_id'] 
   . "', firstname = '" . $this->db->escape($data['firstname']) 
   . "', lastname = '" . $this->db->escape($data['lastname']) 
   . "', email = '" . $this->db->escape($data['email']) 
   . "', telephone = '" . $this->db->escape($data['telephone']) 
   . "', fax = '" . $this->db->escape($data['fax']) 
   . "', total = '" . (float)$data['total'] 
   . "', language_id = '" . (int)$data['language_id'] 
   . "', currency = '" . $this->db->escape($data['currency']) 
   . "', currency_id = '" . (int)$data['currency_id'] 
   . "', value = '" . (float)$data['value'] 
   . "', coupon_id = '" . (int)$data['coupon_id'] 
   . "', ip = '" . $this->db->escape($data['ip']) 
   . "', shipping_firstname = '" . $this->db->escape($data['shipping_firstname']) 
   . "', shipping_lastname = '" . $this->db->escape($data['shipping_lastname']) 
   . "', shipping_company = '" . $this->db->escape($data['shipping_company']) 
   . "', shipping_address_1 = '" . $this->db->escape($data['shipping_address_1']) 
   . "', shipping_address_2 = '" . $this->db->escape($data['shipping_address_2']) 
   . "', shipping_city = '" . $this->db->escape($data['shipping_city']) 
   . "', shipping_postcode = '" . $this->db->escape($data['shipping_postcode']) 
   . "', shipping_zone = '" . $this->db->escape($data['shipping_zone']) 
   . "', shipping_zone_id = '" . (int)$data['shipping_zone_id'] 
   . "', shipping_country = '" . $this->db->escape($data['shipping_country']) 
   . "', shipping_country_id = '" . (int)$data['shipping_country_id'] 
   . "', shipping_address_format = '" . $this->db->escape($data['shipping_address_format']) 
   . "', shipping_method = '" . $this->db->escape($data['shipping_method']) 
   . "', payment_firstname = '" . $this->db->escape($data['payment_firstname']) 
   . "', payment_lastname = '" . $this->db->escape($data['payment_lastname']) 
   . "', payment_company = '" . $this->db->escape($data['payment_company']) 
   . "', payment_address_1 = '" . $this->db->escape($data['payment_address_1']) 
   . "', payment_address_2 = '" . $this->db->escape($data['payment_address_2']) 
   . "', payment_city = '" . $this->db->escape($data['payment_city']) 
   . "', payment_postcode = '" . $this->db->escape($data['payment_postcode']) 
   . "', payment_zone = '" . $this->db->escape($data['payment_zone']) 
   . "', payment_zone_id = '" . (int)$data['payment_zone_id'] 
   . "', payment_country = '" . $this->db->escape($data['payment_country']) 
   . "', payment_country_id = '" . (int)$data['payment_country_id'] 
   . "', payment_address_format = '" . $this->db->escape($data['payment_address_format']) 
   . "', payment_method = '" . $this->db->escape($data['payment_method']) 
   . "', comment = '" . $this->db->escape($data['comment']) 
   . "', date_modified = NOW(), date_added = NOW()"
 );

 на

$this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET store_id = '" . (int)$data['store_id'] 
  . "', store_name = '" . $this->db->escape($data['store_name']) 
  . "', store_url = '" . $this->db->escape($data['store_url']) 
  . "', customer_id = '" . (int)$data['customer_id'] 
  . "', customer_group_id = '" . (int)$data['customer_group_id'] 
  . "', firstname = '" . $this->db->escape($data['firstname']) 
  . "', lastname = '" . $this->db->escape($data['lastname']) 
  . "', email = '" . $this->db->escape($data['email']) 
  . "', telephone = '" . $this->db->escape($data['telephone']) 
  . "', fax = '" . $this->db->escape($data['fax']) 
  . "', total = '" . (float)$data['total'] 
  . "', cost = '" . (float)$data['cost'] 
  . "', language_id = '" . (int)$data['language_id'] 
  . "', currency = '" . $this->db->escape($data['currency']) 
  . "', currency_id = '" . (int)$data['currency_id'] 
  . "', value = '" . (float)$data['value'] 
  . "', coupon_id = '" . (int)$data['coupon_id'] 
  . "', ip = '" . $this->db->escape($data['ip']) 
  . "', shipping_firstname = '" . $this->db->escape($data['shipping_firstname']) 
  . "', shipping_lastname = '" . $this->db->escape($data['shipping_lastname']) 
  . "', shipping_company = '" . $this->db->escape($data['shipping_company']) 
  . "', shipping_address_1 = '" . $this->db->escape($data['shipping_address_1']) 
  . "', shipping_address_2 = '" . $this->db->escape($data['shipping_address_2']) 
  . "', shipping_city = '" . $this->db->escape($data['shipping_city']) 
  . "', shipping_postcode = '" . $this->db->escape($data['shipping_postcode']) 
  . "', shipping_zone = '" . $this->db->escape($data['shipping_zone']) 
  . "', shipping_zone_id = '" . (int)$data['shipping_zone_id'] 
  . "', shipping_country = '" . $this->db->escape($data['shipping_country']) 
  . "', shipping_country_id = '" . (int)$data['shipping_country_id'] 
  . "', shipping_address_format = '" . $this->db->escape($data['shipping_address_format']) 
  . "', shipping_method = '" . $this->db->escape($data['shipping_method']) 
  . "', payment_firstname = '" . $this->db->escape($data['payment_firstname']) 
  . "', payment_lastname = '" . $this->db->escape($data['payment_lastname']) 
  . "', payment_company = '" . $this->db->escape($data['payment_company']) 
  . "', payment_address_1 = '" . $this->db->escape($data['payment_address_1']) 
  . "', payment_address_2 = '" . $this->db->escape($data['payment_address_2']) 
  . "', payment_city = '" . $this->db->escape($data['payment_city']) 
  . "', payment_postcode = '" . $this->db->escape($data['payment_postcode']) 
  . "', payment_zone = '" . $this->db->escape($data['payment_zone']) 
  . "', payment_zone_id = '" . (int)$data['payment_zone_id'] 
  . "', payment_country = '" . $this->db->escape($data['payment_country']) 
  . "', payment_country_id = '" . (int)$data['payment_country_id'] 
  . "', payment_address_format = '" . $this->db->escape($data['payment_address_format']) 
  . "', payment_method = '" . $this->db->escape($data['payment_method']) 
  . "', comment = '" . $this->db->escape($data['comment']) 
  . "', date_modified = NOW(), date_added = NOW()"
);

6. В system/library/cart.php 

$product_data[$key] = array( 
  'key' => $key, 
  'product_id' => $product_query->row['product_id'], 
  'name' => $product_query->row['name'], 
  'model' => $product_query->row['model'], 
  'shipping' => $product_query->row['shipping'], 
  'image' => $product_query->row['image'], 
  'option' => $option_data, 
  'download' => $download_data, 
  'quantity' => $quantity, 
  'minimum' => $product_query->row['minimum'], 
  'subtract' => $product_query->row['subtract'], 
  'stock' => $stock, 
  'price' => ($price + $option_price), 
  'total' => ($price + $option_price) * $quantity, 
  'tax_class_id' => $product_query->row['tax_class_id'], 
  'weight' => $product_query->row['weight'], 
  'weight_class' => $product_query->row['weight_class'], 
  'length' => $product_query->row['length'], 
  'width' => $product_query->row['width'], 
  'height' => $product_query->row['height'], 
  'length_class' => $product_query->row['length_class'] 
);

на 

$cost = $product_query->row['cost']; 
$product_data[$key] = array( 
  'key' => $key, 
  'product_id' => $product_query->row['product_id'], 
  'name' => $product_query->row['name'], 
  'model' => $product_query->row['model'], 
  'shipping' => $product_query->row['shipping'], 
  'image' => $product_query->row['image'], 
  'option' => $option_data, 
  'download' => $download_data, 
  'quantity' => $quantity, 
  'minimum' => $product_query->row['minimum'], 
  'subtract' => $product_query->row['subtract'], 
  'stock' => $stock, 
  'price' => ($price + $option_price), 
  'total' => ($price + $option_price) * $quantity, 
  'cost' => ($cost + $option_price) * $quantity, 
  'tax_class_id' => $product_query->row['tax_class_id'], 
  'weight' => $product_query->row['weight'], 
  'weight_class' => $product_query->row['weight_class'], 
  'length' => $product_query->row['length'], 
  'width' => $product_query->row['width'], 
  'height' => $product_query->row['height'], 
  'length_class' => $product_query->row['length_class'] 
); 

7. B catalog/controller/checkout/guest_step_3.php та confirm.php

foreach ($this->cart->getProducts() as $product) { 
  $option_data = array(); 
  foreach ($product['option'] as $option) { 
    $option_data[] = array( 
      'product_option_value_id' => $option['product_option_value_id'], 
      'name' => $option['name'], 
      'value' => $option['value'], 
      'prefix' => $option['prefix'] ); 
    } 
    $product_data[] = array( 
      'product_id' => $product['product_id'], 
      'name' => $product['name'], 
      'model' => $product['model'], 
      'option' => $option_data, 
      'download' => $product['download'], 
      'quantity' => $product['quantity'], 
      'subtract' => $product['subtract'], 
      'price' => $product['price'], 
      'total' => $product['total'], 
      'tax' => $this->tax->getRate($product['tax_class_id']) 
    ); 
  } 
  $data['products'] = $product_data; 
  $data['totals'] = $total_data; 
  $data['comment'] = $this->session->data['comment']; 
  $data['total'] = $total; 
  $data['language_id'] = $this->config->get('config_language_id'); 
  $data['currency_id'] = $this->currency->getId(); 
  $data['currency'] = $this->currency->getCode(); 
  $data['value'] = $this->currency->getValue($this->currency->getCode());
}

 на 

$cost=0; 
foreach ($this->cart->getProducts() as $product) { 
  $option_data = array(); 
  foreach ($product['option'] as $option) { 
    $option_data[] = array( 
      'product_option_value_id' => $option['product_option_value_id'], 
      'name' => $option['name'], 
      'value' => $option['value'], 
      'prefix' => $option['prefix'] ); 
    } 
    $product_data[] = array( 
      'product_id' => $product['product_id'], 
      'name' => $product['name'], 
      'model' => $product['model'], 
      'option' => $option_data, 
      'download' => $product['download'], 
      'quantity' => $product['quantity'], 
      'subtract' => $product['subtract'], 
      'price' => $product['price'], 
      'total' => $product['total'], 
      'tax' => $this->tax->getRate($product['tax_class_id']) 
    ); 
    $cost += $product['cost']; 
  } 
  
  $data['products'] = $product_data; 
  $data['totals'] = $total_data; 
  $data['comment'] = $this->session->data['comment']; 
  $data['total'] = $total; 
  $data['cost'] = $cost; 
  $data['language_id'] = $this->config->get('config_language_id'); 
  $data['currency_id'] = $this->currency->getId(); 
  $data['currency'] = $this->currency->getCode(); 
  $data['value'] = $this->currency->getValue($this->currency->getCode());
}
OpenCart

Категорії

  • Історії
  • Адміністрування
  • Поради
  • Програмування

Останні матеріали

  • OpenCart облік прибутку
    1 година 10 хвилин ago
  • Fail2Ban: Постійний бан
    2 тижні 4 дні ago
  • Як отримати список змінених файлів між ревізіями
    5 років ago
  • Що робити якщо svn: database disk image is malformed
    6 років ago
  • Як виправити пошкоджений /etc/sudoers файл
    7 років 1 місяць ago
  • Налаштування зовнішнього клієнта контролю версії (svn, git і т.і.) через тунель ssh в IDE
    8 років 3 місяці ago
  • RabbitMQ очистка одної конкретної черги з командної строки
    8 років 9 місяців ago
  • Гарне перенаправлення домену з www на домен без www
    9 років ago
  • Doctrine ORM біхейвери, або як використовувати трейти ефективно
    9 років 3 місяці ago
  • Приклад синтаксису для Secure Copy (scp)
    9 років 5 місяців ago

1980-2023 © All rights reserved. VAG.org.ua // нотатки кодера.