Autor Zpráva
Charles de Gol
Profil *
Dobrý den, mám takový problém. Dostal jsem v práci upravit jeden administrační systém, ale trošku se v něm ztrácím, protože je naprogramován v OOP. Tento systém tady někdo vytvořil a teď ho implementují na všechny stránky. Každá stránka chce ale nějak přizpůsobit a proto se provádějí změny. Já mam problém s tím, že se mi nezobrazují akční ceny. Nevím asi toho chci moc, ale pokud by byl někdo schopný mi poradit byl bych mu vděčný. Napíšu sem kusy tříd o kterých si myslim, že s tim mají něco společného. Pokud je nutná ještě nějaká, doplním co nejdřív.
soubor complete.tpl (obsah nákupního košíku)
{foreach from=$cart->getItems() item="item"}...
Cena bez DPH: <h2>{$item->abc}</h2>
{/foreach}
třída Cart soubor cart.php
public function getItems()
{ return $this->items; }
public function getContent()
	
		$items = $this->getItems();
		$content = array();
		$totalPrice = 0;
		$totalPriceVat = 0;
		$totalPriceWithVat = 0;
		foreach ($items as $key => $item) {
			$product = new Product();
			$product->setId($key);
			$product->load();
			$product->loadVariations();
			$export = $product->export(false, true);

			$export['quantity'] = $item;


			if ($item['variations']) {

				foreach ($item['variations'] as $vid => $foo) {
					$variation = new ProductVariation($vid);
					$variation->load();

					$items[$key]['variations'][$variation->getId()]['price'] = $variation->getPrice();
					$items[$key]['variations'][$variation->getId()]['priceVat'] = $variation->getPriceVat();
					$items[$key]['variations'][$variation->getId()]['priceWithVat'] = $variation->getPriceWithVat();
					$items[$key]['variations'][$variation->getId()]['actionPrice'] = $variation->getActionPrice();
				        $items[$key]['variations'][$variation->getId()]['actionPriceVat'] = $variation->getActionPriceVat();
				       $items[$key]['variations'][$variation->getId()]['actionPriceWithVat'] = $variation->getActionPriceWithVat();
					$items[$key]['variations'][$variation->getId()]['amountPrice'] = $quantity * $variation->getPrice();
					$items[$key]['variations'][$variation->getId()]['amountPriceVat']  = $quantity * $variation->getPriceVat();
					$items[$key]['variations'][$variation->getId()]['amountPriceWithV at'] = $quantity * $variation->getPriceWithVat();
				

					$this->totalPrice += $quantity * $variation->getPrice();
					$this->totalPriceVat += $quantity * $variation->getPriceVat();
					$this->totalPriceWithVat += $quantity * $variation->getPriceWithVat();
				}

			}

			$export['amountPrice'] = $export['quantity']['quantity'] * $export['price'];
			$export['amountPriceVat'] = $export['quantity']['quantity'] * $export['priceVat'];
			$export['amountPriceWithVat'] = $export['quantity']['quantity'] * $export['priceWithVat'];

			$this->totalPrice += $export['amountPrice'];
			$this->totalPriceVat += $export['amountPriceVat'];
			$this->totalPriceWithVat += $export['amountPriceWithVat'];

			$content[] = $export;
		}

		return $content;
	}
třída product soubor product.php
	public function load()
	{
		// Query
		$q = "SELECT * FROM " . IW_TABLE_SHOP_PRODUCT . "
				WHERE `id` = {$this->getID()}";

		$conn = Connector::getConnector();
		$data = $conn->fetchRow($q);

		// Product not found --- redirect to 404
		if ($data === false)
		{
			return false;
		}

		// Fill properties
		$this->import($data);

		// Fill parameters
		$q = "SELECT parameter, value, applied, `order` FROM ".IW_TABLE_SHOP_PARAM_TO_PRODUCT. "
		WHERE product = {$this->getID()} AND variation = 0
		ORDER BY `order` ASC";
		$this->setParameters('db', $conn->fetchAssocAll($q, 'parameter'));
		return true;
	}
třída productVariation soubor productVariantion.php
	public function load()
	{
		$conn = Connector::getConnector();
		$q = "SELECT * FROM " . IW_TABLE_PRODUCT_VARIATION . " WHERE Id = " . $this->getId();
		$data = $conn->fetchRow($q);
		// Load prices
		$last = $conn->fetchRow("SELECT * FROM ".IW_TABLE_PRICE." ORDER BY ValidSince DESC LIMIT 1");
		$this->import('db', $data);
		
		// Fill parameters
		$q = 'SELECT * FROM ' . IW_TABLE_SHOP_PARAM_TO_PRODUCT . ' WHERE variation = ' . $this->getId();
		$this->setParameters('db', $conn->fetchAssocAll($q, 'parameter'));
	}
	public function import($source, $data)
	{
switch($source) {
			case 'db': {
				$this->setId($data['Id']);
				$this->setProduct($data['Product']);
				$this->setTitle($data['Title']);
				$this->setBarcode($data['Barcode']);
				$this->setVatPercentage($data['VatPercentage']);
				$this->setPrice($data['Price']);
        $this->setActionPrice($data['ActionPrice']);
        $this->setActionPriceVat($data['actionPriceVat']);
				$this->setActionPrice(isset($data['IsActionOffer']) ? $data['ActionPrice'] : 0);

				break;
			}
              }
Charles de Gol
Profil *
Nebo pokud by byl někdo tak hodný a schopný mi zkusit poradit třeba na ICQ a já bych mu mohl poslat celé soubory

ICQ 223885285
Hab45
Profil *
Vypisal by si tu class: Connector?
Chcem sa tam na nieco pozriet, lebo zrejme nieco tam zistim.
Charles de Gol
Profil *
class Connector {

/**
* Query
*
* @var string
*/
public $q;

/**
* Statement for execute()
* @var array List of SQL queries to execute
*/

public $statement;

private $dbPassword;
private $dbUser;
private $dbName;
private $dbServer;
private $conn;
private $result;
private $err_handler;
private $log_query;
private $insert_addslashes;


/**
* Get connector
* Create and return connector object connected to database
* @return Connector $connector Database abstraction layer
*/

public static function getConnector()
{
$dsn['host'] = IW_DATABASE_HOST;
$dsn['name'] = IW_DATABASE_NAME;
$dsn['password'] = IW_DATABASE_PASSWORD;
$dsn['user'] = IW_DATABASE_USER;

return new Connector($dsn);
}

/**
* Connector constructor
* @param array $dsn Data source name
*/

private function __construct($dsn) {

// Parse DSN
$this->dbServer = $dsn['host'];
$this->dbName = $dsn['name'];
$this->dbUser = $dsn['user'];
$this->dbPassword = $dsn['password'];

// Connect
$this->connect();

// Encoding patch for MySQL version 4.1
if(version_compare(phpversion(), "4.3.10", ">=")>0) {
$result = @mysql_query("SHOW VARIABLES LIKE 'version'");
$row = mysql_fetch_row($result);
$mysql_ver = $row[1];
if(version_compare($mysql_ver, '4.1.0', '>=')>0) {
$i = 1;
while(defined('DB_INIT_CODE_'.$i)) {
$sQuery = constant('DB_INIT_CODE_'.$i);
mysql_query($sQuery);
$i++;
}
}
}
}
private function connect()
{
// Connect
if (!$this->conn = @mysql_pconnect($this->dbServer, $this->dbUser, $this->dbPassword)) {
throw new DatabaseError('Nepodařilo se připojit k databázovému serveru.', 0, 'Connection', mysql_error());
}
// Select database
if (!@mysql_select_db($this->dbName, $this->conn)) {
throw new DatabaseError("Nepodařilo se zvolit databázi ({$this->dbName}).", 0, 'Database selection', mysql_error($this->conn));
}
}
function fetchRow($q)
{
$result = $this->query($q);
// Some result
if ($result) {
$row = mysql_fetch_assoc($result);
mysql_free_result($result);
return($row);
}
// Nothing
else {
return false;
}
}
Hab45
Profil *
Cez <pre> by som to nevypisal? Bolo by to prehladnejsie.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0