chucurulo Posted October 7, 2014 Share Posted October 7, 2014 hola, Me gustaria agregarle a esa parte de la estadisticas esos dos campos nuevos marcado en rojo, creo que son muy importante tenerlo para ver las ganancias de manera facil, osea tener el stock valorizado facilmente con las ganacias. quien nos puede ayudar hacerlo gracias le dejo la imagen para que tengan una idea. el modulo de este campo se encuentra especificamente en modules/statsstock/statsstock.php Link to comment Share on other sites More sharing options...
chucurulo Posted October 8, 2014 Author Share Posted October 8, 2014 (edited) hola, Con un poco de esfuerzo y sacrificio he coseguido una parte de lo que queria, ya que no soy programador ni conosco mucho del tema pero logre algo, solo hace falta un poquito es que no se visualizan todos los totales al final, ya he intendato muchas cosas y no logro hacerlo. sopecho que es en los valores que hay que extrar de la base de datos ese punto no lo manejo muy bien, a continuacion le dejo el archivo y la imagen a ver si alguien me puede ayudar, muchas gracias.. modules/statsstock/statsstock.php <?php /* * 2007-2014 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2014 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ if (!defined('_PS_VERSION_')) exit; class StatsStock extends Module { private $html = ''; public function __construct() { $this->name = 'statsstock'; $this->tab = 'analytics_stats'; $this->version = '1.4.1'; $this->author = 'PrestaShop'; $this->need_instance = 0; parent::__construct(); $this->displayName = $this->l('Available quantities'); $this->description = 'Adds a tab showing the quantity of available products for sale to the Stats dashboard.'; $this->ps_versions_compliancy = array('min' => '1.6', 'max' => _PS_VERSION_); } public function install() { return parent::install() && $this->registerHook('AdminStatsModules'); } public function hookAdminStatsModules() { if (Tools::isSubmit('submitCategory')) $this->context->cookie->statsstock_id_category = Tools::getValue('statsstock_id_category'); $ru = AdminController::$currentIndex.'&module='.$this->name.'&token='.Tools::getValue('token'); $currency = new Currency(Configuration::get('PS_CURRENCY_DEFAULT')); $filter = ((int)$this->context->cookie->statsstock_id_category ? ' AND p.id_product IN (SELECT cp.id_product FROM '._DB_PREFIX_.'category_product cp WHERE cp.id_category = '.(int)$this->context->cookie->statsstock_id_category.')' : ''); $sql = 'SELECT p.id_product, p.reference, pl.name, pl.name, p.price, IFNULL(( SELECT AVG(product_attribute_shop.wholesale_price) FROM '._DB_PREFIX_.'product_attribute pa '.Shop::addSqlAssociation('product_attribute', 'pa').' WHERE p.id_product = pa.id_product AND product_attribute_shop.wholesale_price != 0 ), product_shop.wholesale_price) as wholesale_price, IFNULL(stock.quantity, 0) as quantity FROM '._DB_PREFIX_.'product p '.Shop::addSqlAssociation('product', 'p').' INNER JOIN '._DB_PREFIX_.'product_lang pl ON (p.id_product = pl.id_product AND pl.id_lang = '.(int)$this->context->language->id.Shop::addSqlRestrictionOnLang('pl').') '.Product::sqlStock('p', 0).' WHERE 1 = 1 '.$filter; $products = Db::getInstance()->executeS($sql); foreach ($products as $key => $p) $products[$key]['stockvalue'] = $p['wholesale_price'] * $p['quantity']; $products[$key]['stockvaluea'] = $p['price'] * $p['quantity']; $this->html .= ' <script type="text/javascript">$(\'#calendar\').slideToggle();</script> <div class="panel-heading">' .$this->l('Evaluation of available quantities for sale'). '</div> <form action="'.Tools::safeOutput($ru).'" method="post" class="form-horizontal"> <div class="row row-margin-bottom"> <label class="control-label col-lg-3">'.$this->l('Category').'</label> <div class="col-lg-6"> <select name="statsstock_id_category" onchange="this.form.submit();"> <option value="0">- '.$this->l('All').' -</option>'; foreach (Category::getSimpleCategories($this->context->language->id) as $category) $this->html .= '<option value="'.(int)$category['id_category'].'" '. ($this->context->cookie->statsstock_id_category == $category['id_category'] ? 'selected="selected"' : '').'>'. $category['name'].' </option>'; $this->html .= ' </select> <input type="hidden" name="submitCategory" value="1" /> </div> </div> </form>'; if (!count($products)) $this->html .= '<p>'.$this->l('Your catalog is empty.').'</p>'; else { $rollup = array('quantity' => 0, 'price' => 0, 'stockvaluea' => 0); $rollup = array('quantity' => 0, 'wholesale_price' => 0, 'stockvalue' => 0); $this->html .= ' <table class="table"> <thead> <tr> <th><span class="title_box active">'.$this->l('ID').'</span></th> <th><span class="title_box active">'.$this->l('Ref.').'</span></th> <th><span class="title_box active">'.$this->l('Item').'</span></th> <th><span class="title_box active">'.$this->l('Available quantity for sale').'</span></th> <th><span class="title_box active">'.$this->l('Price*').'</span></th> <th><span class="title_box active">'.$this->l('Value').'</span></th> <th><span class="title_box active">'.$this->l('precio veta').'</span></th> <th><span class="title_box active">'.$this->l('Total Venta').'</span></th> </tr> </thead> <tbody>'; foreach ($products as $product) { $rollup['quantity'] += $product['quantity']; $rollup['wholesale_price'] += $product['wholesale_price']; $rollup['stockvalue'] += $product['stockvalue']; $rollup['stockvaluea'] += $product['stockvaluea']; $rollup['price'] += $product['price']; $this->html .= '<tr> <td>'.$product['id_product'].'</td> <td>'.$product['reference'].'</td> <td>'.$product['name'].'</td> <td>'.$product['quantity'].'</td> <td>'.Tools::displayPrice($product['wholesale_price'], $currency).'</td> <td>'.Tools::displayPrice($product['stockvalue'], $currency).'</td> <td>'.Tools::displayPrice($product['price'], $currency).'</td> <td>'.Tools::displayPrice($product['stockvaluea'], $currency).'</td> </tr>'; } $this->html .= ' </tbody> <tfoot> <tr> <th colspan="3"></th> <th><span class="title_box active">'.$this->l('Total quantities').'</span></th> <th><span class="title_box active">'.$this->l('Average price').'</span></th> <th><span class="title_box active">'.$this->l('Total value').'</span></th> <th><span class="title_box active">'.$this->l('Total Precio').'</span></th> <th><span class="title_box active">'.$this->l('Total precio venta').'</span></th> </tr> <tr> <td colspan="3"></td> <td>'.$rollup['quantity'].'</td> <td>'.Tools::displayPrice($rollup['wholesale_price'] / count($products), $currency).'</td> <td>'.Tools::displayPrice($rollup['stockvalue'], $currency).'</td> <td>'.Tools::displayPrice($rollup['price'] / count($products), $currency).'</td> <td>'.Tools::displayPrice($rollup['stockvaluea'], $currency).'</td> </tr> </tfoot> </table> <i class="icon-asterisk"></i> '.$this->l('This section corresponds to the default wholesale price according to the default supplier for the product. An average price is used when the product has attributes.'); return $this->html; } } } Edited October 8, 2014 by chucurulo (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts