Приветствую! сделал небольшое веб-приложение на CI, для учета товаров( добавить товар, купили товар, редактировать товар).
Пару раз в день появляются левые записи в БД о покупках, например:
купили 1 товар с определенным ИД и сразу же записываются еще 1-2 покупки с этим же ИД и с
хаотичным количеством(20,12,4,3 и т.п.).
Никак не могу отследить из-за чего это происходит т.к. ошибки появляются с разными товарами, а может их и не быть. Делал логирование( при записи в БД запись в файл) - эти ошибочные записи почему-то не логируются. Голову уже сломал
функция которая отвечает за покупку:
function kupleno(){
//это для логов
include($_SERVER['DOCUMENT_ROOT'].'/class.php');
Logger::$PATH = 'logs';
$array = $this->input->post("ii");
$this->load->model('News_model');
$data["time"] = date("Y-m-d H:i:s");
//перебор отправленных товаров
foreach($array as $ar){
$data["code"] = $ar['cod'];
$data["kol"] = $ar['kol'];
$data["ver"] = $ar['ver'];
$kol = $ar['kol'];
//отнимает от количества в списке продуктов
$this->db->where('code',$data["code"]);
$this->db->set('kol', 'kol - '.(int)$kol, FALSE);
$this->db->set('kup', $kol);
$this->db->update('prod');
//получаем всю инфу по товару
$this->db->where('code',$data["code"]);
$q = $this->db->get('prod');
$arr = $q->row_array();
//вычисляем прибыль
$getprice = $this->getprice($arr["price"],$arr["kurs"],$arr["sale"],$arr['proc']);
$prib = $getprice["summ"]-$getprice["price"];
if(!empty($arr["sale"])){$prib = $getprice["summ"]-$getprice["saletg"];}
$data["pribil"] =(ceil($prib/10)*10)*$kol;
//проверяем был ли куплен товар уже сегодня, в магазине или с доставкой
$dt = date("Y-m-d");
$this->db->where('code',$data["code"]);
$this->db->where('ver',$data["ver"]);
$this->db->where("DATE_FORMAT(time,'%Y-%m-%d') = '$dt'");
$q = $this->db->get('kupleno');
//если да то обновляем
if($q->num_rows() > 0){
$this->db->where('code',$data["code"]);
$this->db->set('kol', 'kol + '.(int)$kol, FALSE);
$this->db->set('pribil', 'pribil + '.(int)$data["pribil"], FALSE);
$this->db->set('time', date("Y-m-d H:i:s"));
$this->db->update('kupleno');
Logger::getLogger(date("d-m-Y"))->log('ipdate id - '.$ar['cod'].'/'.$ar['kol'].'/'.$ar['ver']);
}else{
Logger::getLogger(date("d-m-Y"))->log('kuplen id - '.$ar['cod'].'/'.$ar['kol'].'/'.$ar['ver']);
$this->News_model->kupleno($data);
}
}
print "Товар продан";
}