protected function updateTemplate_Cost(HTML_Indexer $index = null, Kiwi_Product $product_data = null) { if ($index === null) { $index = $this->_index; } if ($product_data === null) { $product_data = $this->_product_data; } $vars = array('ma_starou_cenu', 'nema_starou_cenu', 'ma_novou_cenu', 'nema_novou_cenu', 'stara_cena_bez_dph', 'nova_cena_bez_dph', 'stara_cena_s_dph', 'nova_cena_s_dph', 'stara_cena_dph', 'nova_cena_dph', 'ma_zmenu_ceny', 'nema_zmenu_ceny', 'zmena_ceny', 'zmena_ceny_procent'); foreach ($vars as $varname) { ${$varname} = $index->{$varname}; } $conf = new Project_Config(); $costs_with_vat = $conf->costs_with_vat; $vat_coefs = $conf->vat_coefs; $monetary_format = $conf->monetary_format; foreach ($ma_starou_cenu as $elem) { $elem->active = $product_data->OriginalCost != 0; } foreach ($nema_starou_cenu as $elem) { $elem->active = $product_data->OriginalCost == 0; } foreach ($ma_novou_cenu as $elem) { $elem->active = $product_data->NewCost != 0; } foreach ($nema_novou_cenu as $elem) { $elem->active = $product_data->NewCost == 0; } if (!empty($stara_cena_bez_dph)) { if ($product_data->OriginalCost) { if ($costs_with_vat) { $vat = round($product_data->OriginalCost * $vat_coefs['top'], 2); $orig_cost_value_novat = $product_data->OriginalCost - $vat; } else { $orig_cost_value_novat = $product_data->OriginalCost; } $orig_cost = new Money_Value($orig_cost_value_novat, $monetary_format); $html_cost = new HTML_Text($orig_cost->format()); foreach ($stara_cena_bez_dph as $elem) { $elem->add($html_cost); } } else { foreach ($stara_cena_bez_dph as $elem) { $elem->active = false; } } } if (!empty($nova_cena_bez_dph)) { if ($costs_with_vat) { $vat = round($product_data->NewCost * $vat_coefs['top'], 2); $new_cost_value_novat = $product_data->NewCost - $vat; } else { $new_cost_value_novat = $product_data->NewCost; } $new_cost = new Money_Value($new_cost_value_novat, $monetary_format); $html_cost = new HTML_Text($new_cost->format()); foreach ($nova_cena_bez_dph as $elem) { $elem->add($html_cost); } } if (!empty($stara_cena_s_dph)) { if ($product_data->OriginalCost) { if ($costs_with_vat) { $orig_cost_value_vat = $product_data->OriginalCost; } else { $vat = round($product_data->OriginalCost * $vat_coefs['bottom'], 2); $orig_cost_value_vat = $product_data->OriginalCost + $vat; } $orig_cost = new Money_Value($orig_cost_value_vat, $monetary_format); $html_cost = new HTML_Text($orig_cost->format()); foreach ($stara_cena_s_dph as $elem) { $elem->add($html_cost); } } else { foreach ($stara_cena_s_dph as $elem) { $elem->active = false; } } } if (!empty($nova_cena_s_dph)) { if ($costs_with_vat) { $new_cost_value_vat = $product_data->NewCost; } else { $vat = round($product_data->NewCost * $vat_coefs['bottom'], 2); $new_cost_value_vat = $product_data->NewCost + $vat; } $new_cost = new Money_Value($new_cost_value_vat, $monetary_format); $html_cost = new HTML_Text($new_cost->format()); foreach ($nova_cena_s_dph as $elem) { $elem->add($html_cost); } } if (!empty($stara_cena_dph)) { $vat = round($product_data->OriginalCost * $vat_coefs[$costs_with_vat ? 'top' : 'bottom']); $vat_mv = new Money_Value($vat, $monetary_format); $html_vat = new HTML_Text($vat_mv->format()); foreach ($stara_cena_dph as $elem) { $elem->add($html_vat); } } if (!empty($nova_cena_dph)) { $vat = round($product_data->NewCost * $vat_coefs[$costs_with_vat ? 'top' : 'bottom']); $vat_mv = new Money_Value($vat, $monetary_format); $html_vat = new HTML_Text($vat_mv->format()); foreach ($nova_cena_dph as $elem) { $elem->add($html_vat); } } $cost_change = $product_data->OriginalCost != 0 && $product_data->OriginalCost != $product_data->NewCost; foreach ($ma_zmenu_ceny as $elem) { $elem->active = $cost_change; } foreach ($nema_zmenu_ceny as $elem) { $elem->active = !$cost_change; } if (!empty($zmena_ceny)) { $dif = $product_data->NewCost - $product_data->OriginalCost; $dif_mv = new Money_Value($dif, $monetary_format); $html_dif = new HTML_Text($dif_mv->format()); foreach ($zmena_ceny as $elem) { $elem->add($html_dif); } } if (!empty($zmena_ceny_procent)) { $dif = $product_data->NewCost - $product_data->OriginalCost; if ($product_data->OriginalCost != 0) { $dif_pct = round($dif * 100 / $product_data->OriginalCost); } else { $dif_pct = 0; } $html_dif_pct = new HTML_Text($dif_pct); foreach ($zmena_ceny_procent as $elem) { $elem->add($html_dif_pct); } } }
public static function setDefaultFormat($preset = null) { if ($preset === null) { self::$default_format = $this->_format; } else { $val = strtolower($preset); if (array_key_exists($val, self::$format_presets)) { self::$default_format = self::$format_presets[$val]; } else { self::$default_format = $this->_format; } } }