Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проблема отработки данных

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
IGORtrue
Отправлено: 20 Июля, 2014 - 01:06:13
Post Id



Частый гость


Покинул форум
Сообщений всего: 177
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Внутри класса есть метод, особо в код не вчитывайтесь (получаем ссылку на excel документ, разбираем его, обновляем данные в бд, если совпадает идентификатор).
Проблема в том, что есть условие, если некоторое поле >0, то данные этой строки excel документа не заносить в бд, а поместить в отдельную таблицу в новой вкладке, позволить дописать и обновить.
Это как менять колесо у машины на скорости.
Дайте какую идею. Спасибо.
PHP:
скопировать код в буфер обмена
  1.  
  2.   function upload()
  3.   {
  4.     $path = ROOT_DIR.'/temp/';
  5.     copy($_FILES['file']['tmp_name'],$path.'upload.xls');
  6.     require(LIBS_DIR.'phpexcel/PHPExcel/IOFactory.php');
  7.     $objPHPExcel = PHPExcel_IOFactory::load("temp/upload.xls");
  8.     $objPHPExcel->setActiveSheetIndex(0);
  9.     $aSheet = $objPHPExcel->getActiveSheet();
  10.     $array = array();
  11.     $k = 1;
  12.     $val = false;
  13.  
  14.       foreach($this->upload_data as $key=>$v)
  15.       {
  16.           if(!empty($_POST[$v['name']]))
  17.           {
  18.               $this->upload_data[$key]['col'] = $_POST[$v['name']];
  19.           }
  20.           else
  21.           {
  22.               unset($this->upload_data[$key]);
  23.           }
  24.       }
  25.  
  26.     while($k)
  27.     {
  28.       $tmp = $aSheet->getCellValue('B'.$k);
  29.       if(empty($tmp))break;
  30.       $item = array();
  31.       foreach($this->upload_data as $row)
  32.       {
  33.         $item[$row['name']] = $aSheet->getCellValue($row['col'].$k);
  34.       }
  35.       array_push($array, $item);
  36.       $k++;
  37.     }
  38.     foreach($array as $arr)
  39.     {
  40.       $row = array();
  41.           $qwert = "";
  42.       $row['service_date'] = $this->tools->dateToYmD($arr['service_date']);
  43.                 $qwert .="`service_date` = '".$row['service_date']."', ";
  44.           $row['invoice'] = $arr['invoice'];
  45.           if($_REQUEST['both'])
  46.         {
  47.             $tmp = explode(' ',$arr['last_name']);
  48.             $row['surname'] = $tmp[0];
  49.                                 for ($x=1; $x<count($tmp); $x++){
  50.                                 $row['name'] .=$tmp[$x]." ";
  51.                                 }
  52.                                 $qwert .="`name` = '".$row['name']."', ";
  53.         }
  54.         else
  55.         {
  56.             $row['name'] = $arr['first_name'];
  57.                                 $qwert .="`name` = '".$row['name']."', ";
  58.             $row['surname'] = $arr['last_name'];
  59.                                 $qwert .="`surname` = '".$row['surname']."', ";
  60.         }
  61.         $row['dob'] = $this->tools->dateToYmD($arr['dob']);
  62.                 $qwert .="`dob` = '".$row['dob']."', ";
  63.         $row['total_amount'] = $arr['total_amount'];
  64.                 $qwert .="`total_amount` = '".$row['total_amount']."', ";      
  65.         $row['discount'] = round((1-$arr['amount_discounted']/$arr['total_amount'])*100, 2);
  66.                 $qwert .="`discount` = '".$row['discount']."', ";      
  67.         $row['discount_amount'] = $arr['total_amount']-$arr['amount_discounted'];
  68.                 $qwert .="`discount_amount` = '".$row['discount_amount']."', ";
  69.         $row['discounted'] = $arr['amount_discounted'];
  70.                 $qwert .="`discounted` = '".$row['discounted']."', ";  
  71.         $row['deductible'] = $arr['deductible'];
  72.                 $qwert .="`deductible` = '".$row['deductible']."', ";
  73.         $row['cc'] = $arr['cc'];
  74.                 $qwert .="`cc` = '".$row['cc']."', ";
  75.         $row['not_covered'] = $arr['not_covered'];
  76.                 $qwert .="`not_covered` = '".$row['not_covered']."', ";
  77.         $row['ins_paid'] = $arr['paid_ins'];
  78.                 $qwert .="`ins_paid` = '".$row['ins_paid']."', ";
  79.     $row['factual_balance'] = intval($arr['factual_balance']) > 0 ? $arr['factual_balance'] : 0;
  80.                 $qwert .="`factual_balance` = '".$row['factual_balance']."', ";
  81.         $row['date_sent'] = $this->tools->dateToYmD($arr['date_sent']);
  82.                 $qwert .="`date_sent` = '".$row['date_sent']."', ";
  83.     $row['date_paid'] = $this->tools->dateToYmD($arr['date_paid']);
  84.                 $qwert .="`date_paid` = '".$row['date_paid']."', ";
  85.     // эти высчитываются
  86.         $row['pat_debt'] = $arr['not_covered'] + $arr['deductible'] + 0;
  87.                 $qwert .="`pat_debt` = '".$row['pat_debt']."', ";
  88.         $row['debt'] = $arr['deductible']+$arr['not_covered'];
  89.                 $qwert .="`debt` = '".$row['debt']."' ";
  90.                  
  91.                   $tmp = $this->db->query("UPDATE `cases` SET ".$qwert." WHERE `invoice`= '".$row['invoice']."'");
  92.     }
  93.   }
  94.  
 
 Top
Viper
Отправлено: 20 Июля, 2014 - 08:16:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Если верно понял, то:
1. Сохраняем то что подходит
2. Делаем редирект на форму где узер делает правки для этого поля
3. Дописываем.

Не понял зачем для этого делать ещё одну таблицу?!


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
IGORtrue
Отправлено: 20 Июля, 2014 - 12:20:00
Post Id



Частый гость


Покинул форум
Сообщений всего: 177
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Viper пишет:
Если верно понял, то:
1. Сохраняем то что подходит
2. Делаем редирект на форму где узер делает правки для этого поля
3. Дописываем.

Не понял зачем для этого делать ещё одну таблицу?!


По ТЗ так. Там будет и ещё одна вкладка в которой будет выведет результат. Я бы просто передал через post, но данных слишком много.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB