public function execByType($type) { $dbsm = new shopDiscountBySumModel(); if (waRequest::post()) { $sums = waRequest::post('rate_sum'); $discounts = waRequest::post('rate_discount'); $rows = array(); $dbsm->deleteByField('type', $type); if (is_array($sums) && is_array($discounts)) { foreach ($sums as $k => $sum) { $sum = str_replace(',', '.', $sum); if (!is_numeric($sum) || $sum < 0) { continue; } $discount = (double) str_replace(',', '.', ifset($discounts[$k], 0)); $discount = min(max($discount, 0), 100); if ($sum || $discount) { $rows[] = array('sum' => $sum, 'discount' => $discount, 'type' => $type); } } if ($rows) { $dbsm->multipleInsert($rows); } } } $enabled = shopDiscounts::isEnabled($type); $def_cur = waCurrency::getInfo(wa()->getConfig()->getCurrency()); $rates = $dbsm->getByType($type); foreach ($rates as &$r) { $r['sum'] = (double) $r['sum']; $r['discount'] = (double) $r['discount']; } $this->view->assign('rates', $rates); $this->view->assign('enabled', $enabled); $this->view->assign('def_cur_sym', ifset($def_cur['sign'], wa()->getConfig()->getCurrency())); }