|
@@ -33,7 +33,7 @@ class Bocian extends RouteToolBase {
|
|
|
'DBG' => V::get('DBG', 0, $_GET),
|
|
|
'VIEW_KONTRAHENCI' => $this->defaultViewFormBiAudit([], 'KONTRAHENCI'),
|
|
|
'VIEW_PRACOWNICY' => $this->defaultViewFormBiAudit([], 'PRACOWNICY'),
|
|
|
- 'URL_PARSE_CSV_FILE_AJAX' => $this->getLink('parseCsvFileAjax'),
|
|
|
+ 'URL_FORM_DATA_CSV_FILE_AJAX' => $this->getLink('formDataCsvFileAjax'),
|
|
|
'URL_SAVE_FORM_CSV_FILE_AJAX' => $this->getLink('saveFormCsvFileAjax'),
|
|
|
|
|
|
]);
|
|
@@ -45,50 +45,50 @@ class Bocian extends RouteToolBase {
|
|
|
/**
|
|
|
* Funkcja ajax do odebrania danych z przesłanego pliku CSV do parsowania
|
|
|
*/
|
|
|
- public function parseCsvFileAjaxAction() {
|
|
|
- Response::sendTryCatchJson(array($this, 'parseCsvFileAjax')); // , $args = 'JSON_FROM_REQUEST_BODY');
|
|
|
+ public function formDataCsvFileAjaxAction() {
|
|
|
+ Response::sendTryCatchJson(array($this, 'formDataCsvFileAjax'));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * Funkcja parsuje dane wgrywanego plku csv
|
|
|
+ * Funkcja parsuje dane wgrywanego plku csv i zwraca dane w inputach
|
|
|
*/
|
|
|
-public function parseCsvFileAjax() {
|
|
|
+public function formDataCsvFileAjax() {
|
|
|
|
|
|
if (!file_exists($_FILES['file']['tmp_name'])) throw new Exception("Wybierz plik do przesłania.");
|
|
|
|
|
|
$file = file($_FILES['file']['tmp_name']);
|
|
|
|
|
|
- // nagłowki csv
|
|
|
- $headCsv = array();
|
|
|
- // wiersze CSV(poza pierwszym)
|
|
|
- $arrayRows = array();
|
|
|
+ // parsujemy csv to tablicy
|
|
|
+ $arrayDataCsv = $this->csvToArray($file, ';', '"', '\n\r');
|
|
|
+
|
|
|
$i = 0;
|
|
|
+ // tworzymy rekordy
|
|
|
+ foreach ( $arrayDataCsv as $line ) {
|
|
|
+ //$viewFormCol .= '<div style="margin: 10px 0"><span>'.($i + 1).'. </span>';
|
|
|
+
|
|
|
+ $viewFormCol .= '<tr>';
|
|
|
+ foreach ( $line as $keyData => $rowData ) {
|
|
|
+ // utworzenie nagłówków tabeli
|
|
|
+ if( $i == 0) { $header .= '<td>' . $keyData . '</td>'; }
|
|
|
+ // utworzenie inputa do edycji
|
|
|
+ $viewFormCol .= '<td><input type="text" name="item[$i]['.$keyData.']" value="'.$rowData .'" /></td>';
|
|
|
+
|
|
|
+ if (end($rowData )) { $viewFormCol .= '<td><input type="checkbox" name="item['.$i.']['.$keyData.']" value="'.$rowData.'" /></td>'; }
|
|
|
|
|
|
- $viewFormHtml = '<div id="smad-window-modal" style="overflow-x: scroll;"><form method="POST" id="formDataFromCsv" >';
|
|
|
- foreach ($file as $line) {
|
|
|
- if ( $i == 0 ) {
|
|
|
- $headCsv = explode(';', $line);
|
|
|
-
|
|
|
- } else {
|
|
|
-
|
|
|
- $arrayRows = explode(';', $line);
|
|
|
-
|
|
|
- $viewFormHtml .= '<div style="margin: 10px 0"><span>'.$i.'. </span>';
|
|
|
- foreach ($arrayRows as $keyData => $rowData) {
|
|
|
- // sprawdzenie czy ustawiony naglówek - jeśli nie to wyświetl komunikat
|
|
|
- // if ($headCsv[$keyData]) throw new Exception("Brak nagłówka w kolumnie " . ($keyData + 1) . "w pliku CSV.");
|
|
|
- // usuwamy puste znaki i znaki od nowej linii
|
|
|
- $rowData = trim(str_replace(array("\n", "\r", "\r\n", "\n\r"), ' ', $rowData));
|
|
|
- $nameValue = trim(str_replace(array("\n", "\r", "\r\n", "\n\r"), ' ', $headCsv[$keyData]));
|
|
|
- // utworzenie inputa do edycji
|
|
|
- $viewFormHtml .= "<input type='text' name='item[$i][$nameValue]' value='".str_replace('"', '', $rowData )."' />";
|
|
|
- }
|
|
|
- $viewFormHtml .= '</div><div style="margin: 20px 0;"></div>';
|
|
|
}
|
|
|
+ $viewFormCol .= '</tr>';
|
|
|
+
|
|
|
+ // $viewFormCol .= '</div><div style="margin: 20px 0;"></div>';
|
|
|
$i++;
|
|
|
|
|
|
}
|
|
|
- $viewFormHtml .= '</form></div>';
|
|
|
+
|
|
|
+ $viewFormHtml = '<div id="smad-window-modal" style="overflow-x: scroll;"><form method="POST" id="formDataFromCsv" >';
|
|
|
+ $viewFormHtml = ' <thead><tr>'. $header .'
|
|
|
+ <td>Zaktualizuj</td>
|
|
|
+ </tr>
|
|
|
+ </thead>';
|
|
|
+ $viewFormHtml .= '<tbody id="smad-csv-data">'. $viewFormCol .'</tbody></table></form></div>';
|
|
|
|
|
|
//return $viewFormHtml;
|
|
|
return [
|
|
@@ -100,9 +100,10 @@ public function parseCsvFileAjax() {
|
|
|
'view' => $viewFormHtml,
|
|
|
]
|
|
|
];
|
|
|
- // if (!isset($_FILES['fileData'])) throw new Exception("Błąd formularza ");
|
|
|
+
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* Funkcja ajax do odebrania danych z przesłanego formularza z parsowanego CSV
|
|
|
*/
|
|
@@ -118,14 +119,86 @@ public function parseCsvFileAjax() {
|
|
|
public function saveFormCsvFileAjax($args) {
|
|
|
$formData = V::get('formData', '', $args);
|
|
|
|
|
|
+ // unserialize data from serialize in javascript
|
|
|
parse_str($formData, $resultArrayFormdata);
|
|
|
//$formData = V::get('formData', '', $_REQUEST, '');
|
|
|
- print_r($resultArrayFormdata);
|
|
|
+ //print_r($resultArrayFormdata);
|
|
|
+
|
|
|
+ if ( count($resultArrayFormdata['item']) == 0) {
|
|
|
+ throw new Exception("Wystapił problem podczas przesyłania danych - brak przesłanych danych.");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ foreach ( $resultArrayFormdata['item'] as $line ) {
|
|
|
+
|
|
|
+ $insertData = array();
|
|
|
+ $insertTemp = array();
|
|
|
+ print_r($line);
|
|
|
+ // foreach ( $line as $keyData => $rowData) {
|
|
|
+ //
|
|
|
+ // $insertTemp[$keyData] = $rowData;
|
|
|
+ // // print $keyData ."--". $rowData . "<br />";
|
|
|
+ // $insertData = array_merge($insertTemp, $insertData);
|
|
|
+ //
|
|
|
+ // }
|
|
|
+
|
|
|
+ // $this->saveDataToDb($table, $arrayData);
|
|
|
+ }
|
|
|
+ //print_r($insertData);
|
|
|
+ exit;
|
|
|
+
|
|
|
+exit;
|
|
|
+ try {
|
|
|
+
|
|
|
+ $responseInsert = DB::getPDO()->insert('BI_audit_ENERGA_RUM_KONTRAHENCI', [
|
|
|
+ 'Pelna_nazwa_kontrahenta' => 'Teste NAZWY FIRMY ',
|
|
|
+ 'Skrocona_Nazwa_Kontrahenta' => 'TEST NAZWY SKR.'
|
|
|
+ ]);
|
|
|
+
|
|
|
+ } catch (Exception $e) {
|
|
|
+
|
|
|
+ print_r($e);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
//print_r($formData);
|
|
|
//todo: dane do zapisania z formularza
|
|
|
}
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
+ * Function parse csv to array
|
|
|
+ * @param $filename - file data from FILE
|
|
|
+ * @param $delimiter - delimiter
|
|
|
+ * @param $enclosure -
|
|
|
+ * @param $escape -
|
|
|
+ */
|
|
|
+ function csvToArray($filedata , $delimiter=';', $enclosure='"', $escape = '\\') {
|
|
|
+ if(!$filedata || empty($filedata)) return false;
|
|
|
+
|
|
|
+ $header = null;
|
|
|
+ $data = array();
|
|
|
+
|
|
|
+ foreach( $filedata as $line) {
|
|
|
+ $values = str_getcsv( $line, $delimiter, $enclosure, $escape );
|
|
|
+ if(!$header) $header = $values;
|
|
|
+ else $data[] = array_combine( $header, $values );
|
|
|
+ }
|
|
|
+
|
|
|
+ return $data;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function saveDataToDb($table, $arrayData ) {
|
|
|
+
|
|
|
+ try {
|
|
|
+ $responseInsert = DB::getPDO()->insert($table, $arrayData);
|
|
|
+ } catch (Exception $e) {
|
|
|
+ print_r($e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
public function fetchEnergaRumKontrahenciPowiazaniaAjaxAction() {
|
|
|
Response::sendTryCatchJson(array($this, 'fetchEnergaRumKontrahenciPowiazaniaAjax')); // , $args = 'JSON_FROM_REQUEST_BODY');
|
|
@@ -1135,7 +1208,7 @@ public function fetchGroupKontrahenciAjax() {
|
|
|
<h2 class="title">Wszyscy</h2>
|
|
|
</header>
|
|
|
<div class="desc">
|
|
|
- Lorem Ipsum jest tekstem stosowanym jako przykładowy wypełniacz w przemyśle poligraficznym.
|
|
|
+ <!-- todo: można dodać opis -->
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="col-md-6">
|