PageRenderTime 64ms CodeModel.GetById 30ms RepoModel.GetById 1ms app.codeStats 0ms

/systemdata/importer_variantvarer.php

https://github.com/nielsrune/saldi
PHP | 590 lines | 508 code | 29 blank | 53 comment | 179 complexity | 5b4c84c3ed6e1fc44dd84774192a79c9 MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. // ------systemdata/importer_variantvarer.php---lap 3.1.3--2013-04-18--------
  3. // LICENS
  4. //
  5. // Dette program er fri software. Du kan gendistribuere det og / eller
  6. // modificere det under betingelserne i GNU General Public License (GPL)
  7. // som er udgivet af The Free Software Foundation; enten i version 2
  8. // af denne licens eller en senere version efter eget valg
  9. // Fra og med version 3.2.2 dog under iagttagelse af følgende:
  10. //
  11. // Programmet må ikke uden forudgående skriftlig aftale anvendes
  12. // i konkurrence med DANOSOFT ApS eller anden rettighedshaver til programmet.
  13. //
  14. // Dette program er udgivet med haab om at det vil vaere til gavn,
  15. // men UDEN NOGEN FORM FOR REKLAMATIONSRET ELLER GARANTI. Se
  16. // GNU General Public Licensen for flere detaljer.
  17. //
  18. // En dansk oversaettelse af licensen kan laeses her:
  19. // http://www.fundanemt.com/gpl_da.html
  20. //
  21. // Copyright (c) 2004-2013 DANOSOFT ApS
  22. // ----------------------------------------------------------------------
  23. @session_start();
  24. $s_id=session_id();
  25. $css="../css/standard.css";
  26. $title="Importer_variantvarer";
  27. include("../includes/connect.php");
  28. include("../includes/online.php");
  29. include("../includes/std_func.php");
  30. print "<div align=\"center\">\n";
  31. print "<table width=\"100%\" height=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tbody>\n";
  32. print "<tr><td height = \"25\" align=\"center\" valign=\"top\">\n";
  33. print "<table width=\"100%\" align=\"center\" border=\"0\" cellspacing=\"2\" cellpadding=\"0\"><tbody>\n";
  34. if ($popup) print "<td width=\"10%\" $top_bund><a href=../includes/luk.php accesskey=L>Luk</a></td>\n";
  35. else print "<td width=\"10%\" $top_bund><a href=diverse.php?sektion=div_io accesskey=L>Luk</a></td>\n";
  36. print "<td width=\"80%\" $top_bund>$title</td>\n";
  37. print "<td width=\"10%\" $top_bund><br></td>\n";
  38. print "</tbody></table>\n";
  39. print "</td></tr>\n";
  40. $submit=if_isset($_POST['submit']);
  41. if($submit) {
  42. if (strstr($submit, "Import")) $submit="Importer";
  43. $filnavn=$_POST['filnavn'];
  44. $splitter=$_POST['splitter'];
  45. $feltnavn=$_POST['feltnavn'];
  46. $feltantal=$_POST['feltantal'];
  47. $tegnset=$_POST['tegnset'];
  48. if (basename($_FILES['uploadedfile']['name'])) {
  49. $filnavn="../temp/".$db."_".str_replace(" ","_",$brugernavn).".csv";
  50. if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $filnavn)) {
  51. vis_data($filnavn, '', '', 1, $bilag,$tegnset);
  52. } else echo "Der er sket en fejl under hentningen, pr&oslash;v venligst igen";
  53. } elseif($submit=='Vis'){
  54. vis_data($filnavn, $splitter, $feltnavn,$feltantal,$varenr,$bilag,$tegnset);
  55. } elseif($submit=='Importer'){
  56. if (($filnavn)&&($splitter)) overfoer_data($filnavn,$splitter,$feltnavn,$feltantal,$tegnset);
  57. else vis_data($filnavn,$splitter,$feltnavn,$feltantal,$varenr,$bilag,$tegnset);
  58. }
  59. } else {
  60. if (!$r1=db_fetch_array(db_select("select box1, box2, beskrivelse from grupper where art='RA' order by kodenr desc",__FILE__ . " linje " . __LINE__))) {
  61. exit;
  62. }
  63. upload($bilag);
  64. }
  65. print "</tbody></table>";
  66. print "</body></html>";
  67. #####################################################################################################
  68. function upload($bilag){
  69. print "<form enctype=\"multipart/form-data\" action=\"importer_variantvarer.php\" method=\"POST\">\n";
  70. print "<tr><td width=100% align=center><table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tbody>\n";
  71. print "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"900000\">\n";
  72. print "<input type=\"hidden\" name=\"bilag\" value=$bilag>\n";
  73. print "<tr><td width=100% align=center> V&aelig;lg datafil: <input name=\"uploadedfile\" type=\"file\" /><br /></td></tr>\n";
  74. print "<tr><td><br></td></tr>\n";
  75. print "<tr><td align=center><input type=\"submit\" name=\"submit\" value=\"Hent\" /></td></tr>\n";
  76. #print "</tbody></table>\n";
  77. #print "</td></tr>\n";
  78. print "<tr><td></form></td></tr>\n";
  79. }
  80. function vis_data($filnavn, $splitter, $feltnavn, $feltantal,$tegneset){
  81. global $charset;
  82. $fp=fopen("$filnavn","r");
  83. if ($fp) {
  84. for ($y=1; $y<4; $y++) $linje=fgets($fp);#korer frem til linje nr. 4.
  85. if ($charset=='UTF-8' && $tegnset!='UTF-8') $linje=utf8_encode($linje);
  86. elseif ($charset!='UTF-8' && $tegnset=='UTF-8') $linje=utf8_decode($linje);
  87. $tmp=$linje;
  88. while ($tmp=substr(strstr($tmp,";"),1)) {$semikolon++;}
  89. $tmp=$linje;
  90. while ($tmp=substr(strstr($tmp,","),1)) {$komma++;}
  91. $tmp=$linje;
  92. while ($tmp=substr(strstr($tmp,chr(9)),1)) {$tabulator++;}
  93. $tmp='';
  94. if (($komma>$semikolon)&& ($komma>$tabulator)) {$tmp='Komma'; $feltantal=$komma;}
  95. elseif (($semikolon>$tabulator)&&($semikolon>$komma)) {$tmp='Semikolon'; $feltantal=$semikolon;}
  96. elseif (($tabulator>$semikolon)&&($tabulator>$komma)) {$tmp='Tabulator'; $feltantal=$tabulator;}
  97. if (!$splitter) {$splitter=$tmp;}
  98. $cols=$feltantal+1;
  99. }
  100. fclose($fp);
  101. $tmp='';
  102. if ($feltnavn) {
  103. for ($y=0; $y<=$feltantal; $y++) {
  104. if ($tmp) $tmp=$tmp.";".$feltnavn[$y];
  105. else $tmp=$feltnavn[$y];
  106. }
  107. setcookie("saldi_variantimp",$tmp,time()+60*60*24*30);
  108. } elseif (isset($_COOKIE['saldi_variantimp'])) {
  109. $tmp = $_COOKIE['saldi_variantimp'];
  110. $feltnavn=explode(";",$tmp);
  111. }
  112. print "<tr><td width=100% align=center><table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"1\"><tbody>";
  113. print "<form enctype=\"multipart/form-data\" action=\"importer_variantvarer.php\" method=\"POST\">";
  114. #print "<tr><td colspan=6 width=100% align=center> $filnavn</td></tr>";
  115. print "<tr><td colspan=\"".$cols."\" align=center><span title='Angiv tegnsæt for import'>Tegnsæt<select name=tegnset>\n";
  116. if ($tegnset) {print "<option>$tegnset</option>\n";}
  117. if ($tegnset!='ISO-8859-1') print "<option>ISO-8859-1</option>\n";
  118. if ($tegnset!='UTF-8') print "<option>UTF-8</option>\n";
  119. print "</select></span>";
  120. print "<span title='Angiv hvilket skilletegn der anvendes til opdeling af kolonner'>Separatortegn&nbsp;<select name=splitter>\n";
  121. if ($splitter) {print "<option>$splitter</option>\n";}
  122. if ($splitter!='Semikolon') print "<option>Semikolon</option>\n";
  123. if ($splitter!='Komma') print "<option>Komma</option>\n";
  124. if ($splitter!='Tabulator') print "<option>Tabulator</option>\n";
  125. print "</select></span>";
  126. print "<input type=\"hidden\" name=\"filnavn\" value=$filnavn>";
  127. print "<input type=\"hidden\" name=\"feltantal\" value=$feltantal>";
  128. print "&nbsp; <input type=\"submit\" name=\"submit\" value=\"Vis\" />";
  129. $x=0;
  130. $q=db_select("select varenr,id from varer",__FILE__ . " linje " . __LINE__);
  131. while ($r=db_fetch_array($q)) {
  132. $varer_id[$x]=$r['id'];
  133. $varer_nr[$x]=$r['varenr'];
  134. $x++;
  135. }
  136. $x=0;
  137. $q=db_select("select * from varianter");
  138. while ($r=db_fetch_array($q)) {
  139. $varianter_id[$x]=$r['id'];
  140. $varianter_beskrivelse[$x]=$r['beskrivelse'];
  141. $varianter_shop_id[$x]=$r['shop_id'];
  142. $x++;
  143. }
  144. $feltnavne="varenr".chr(9)."stregkode";
  145. for ($i=0;$i<count($varianter_id);$i++) {
  146. $feltnavne.=chr(9)."$varianter_beskrivelse[$i]";
  147. }
  148. $feltnavne.=chr(9)."salgspris".chr(9)."kostpris".chr(9)."vejl.pris";
  149. $felt_navn=explode(chr(9),$feltnavne);
  150. $felt_antal=count($felt_navn);
  151. for ($y=0; $y<=$feltantal; $y++) {
  152. for ($x=0; $x<=$felt_antal; $x++) {
  153. if ($felt_navn[$x] && $feltnavn[$y]==$felt_navn[$x] && $felt_aktiv[$x]==1) {
  154. print "<BODY onLoad=\"javascript:alert('Der kan kun v&aelig;re 1 kolonne med $felt_navn[$x]')\">";
  155. $feltnavn[$y]='';
  156. } elseif ($felt_navn[$x] && $feltnavn[$y]==$felt_navn[$x]) $felt_aktiv[$x]=1;
  157. }
  158. if ($feltnavn[$y]=='varenr')$varenr=1;
  159. if ($feltnavn[$y]=='stregkode')$stregkode=1;
  160. }
  161. if (($filnavn)&&($splitter)&&($varenr==1)&&($stregkode==1)) print "&nbsp; <input type=\"submit\" name=\"submit\" value=\"Import&eacute;r\" /></td></tr>";
  162. elseif (!$stregkode) print "<BODY onLoad=\"javascript:alert('Felt for stregkode ikke valgt')\">";
  163. print "<tr><td colspan=$cols><hr></td></tr>\n";
  164. if ((!$splitter)||($splitter=='Semikolon')) {$splitter=';';}
  165. elseif ($splitter=='Komma') {$splitter=',';}
  166. elseif ($splitter=='Tabulator') {$splitter=chr(9);}
  167. for ($y=0; $y<=$feltantal; $y++) {
  168. if ($feltnavn[$y]) print "<td><select name=feltnavn[$y]>\n";
  169. else print "<td align=center><select name=feltnavn[$y]>\n";
  170. print "<option>$feltnavn[$y]</option>\n";
  171. if ($feltnavn[$y]) print "<option></option>\n";
  172. for ($x=0; $x<=$felt_antal; $x++) {
  173. if ($feltnavn[$y]!=$felt_navn[$x]) print "<option>$felt_navn[$x]</option>\n";
  174. }
  175. print "</td>";
  176. }
  177. print "</form></td></tr>";
  178. $fp=fopen("$filnavn","r");
  179. if ($fp) {
  180. $x=0;
  181. $kontonumre=array();
  182. while (!feof($fp)) {
  183. $skriv_linje=0;
  184. if ($linje=fgets($fp)) {
  185. $x++;
  186. #cho "$x | $linje<br>";
  187. $skriv_linje=1;
  188. if ($charset=='UTF-8') $linje=utf8_encode($linje);
  189. $felt=array();
  190. $felt = opdel($splitter, $linje);
  191. for ($y=0; $y<=$feltantal; $y++) {
  192. #cho "$feltnavn[$y] => $felt[$y]<br>";
  193. $fejl[$y]='';
  194. $feltfejl[$y]=0;
  195. $felt[$y]=trim($felt[$y]);
  196. if ((substr($felt[$y],0,1) == '"')&&(substr($felt[$y],-1) == '"')) $felt[$y]=substr($felt[$y],1,strlen($felt[$y])-2);
  197. if ($feltnavn[$y]=='varenr') {
  198. $tmp=NULL;
  199. for($i=0;$i<count($varer_id);$i++) {
  200. if ($felt[$y]==$varer_nr[$i]) {
  201. $tmp=$varer_id[$i];
  202. break 1;
  203. }
  204. }
  205. if (!$tmp) {
  206. $skriv_linje=2;
  207. $fejl[$y].="varenr $felt[$y] ikke fundet, ";
  208. }
  209. }
  210. if ($feltnavn[$y]=='kostpris') {
  211. $tmp=str_replace(",","",$felt[$y]);
  212. $tmp=str_replace(".","",$tmp);
  213. if ($tmp && !is_numeric($tmp)) {
  214. $skriv_linje=2;
  215. $fejl[$y].="kostpris $tmp ikke numerisk, ";
  216. }
  217. }
  218. if ($feltnavn[$y]=='salgspris') {
  219. $tmp=str_replace(",","",$felt[$y]);
  220. $tmp=str_replace(".","",$tmp);
  221. if ($tmp && !is_numeric($tmp)) {
  222. $skriv_linje=2;
  223. $fejl[$y].="salgspris $tmp ikke numerisk, ";
  224. }
  225. }
  226. if ($feltnavn[$y]=='vejl.pris') {
  227. $tmp=str_replace(",","",$felt[$y]);
  228. $tmp=str_replace(".","",$tmp);
  229. if ($tmp && !is_numeric($tmp)) {
  230. $skriv_linje=2;
  231. $fejl[$y].="vejl pris $tmp ikke numerisk, ";
  232. }
  233. }
  234. # if ($feltnavn[$y]=='varenr'&&!is_numeric($felt[$y])) {
  235. # $skriv_linje=2;
  236. # print "<BODY onLoad=\"javascript:alert('R&oslash;de linjer indeholder fejl (kontonummer ikke numerisk) og bliver ikke importeret')\">";
  237. # print "<BODY onLoad=\"javascript:alert('varenrnummer skal v&aelig;re numerisk')\">";
  238. # }
  239. }
  240. }
  241. if ($skriv_linje==2) print "<BODY onLoad=\"javascript:alert('R&oslash;de linjer/felter indeholder fejl og bliver ikke importeret')\">";
  242. if ($skriv_linje>=1){
  243. print "<tr>";
  244. # print "<tr><td>$bilag</td>";
  245. for ($y=0; $y<=$feltantal; $y++) {
  246. if ($skriv_linje==2) $color="#e00000";
  247. elseif ($feltfejl[$y]) $color="#e00000";
  248. else $color="#000000";
  249. if ($feltnavn[$y]) {print "<td title=\"$fejl[$y]\"><span style=\"color: $color;\">$felt[$y]&nbsp;</span></td>";}
  250. else {print "<td align=\"center\" title=\"$fejl[$y]\"><span style=\"color: rgb(153, 153, 153);\">$felt[$y]&nbsp;</span></td>";}
  251. }
  252. print "</tr>";
  253. }
  254. }
  255. }
  256. fclose($fp);
  257. print "</tbody></table>";
  258. print "</td></tr>";
  259. }
  260. function overfoer_data($filnavn, $splitter, $feltnavn, $feltantal,$tegnset){
  261. global $charset;
  262. $fp=fopen("$filnavn","r");
  263. if ($fp) {
  264. for ($y=1; $y<4; $y++) {
  265. $tmp=fgets($fp);
  266. if($tmp) $linje=$tmp;
  267. }
  268. $tmp=$linje;
  269. while ($tmp=substr(strstr($tmp,";"),1)) {$semikolon++;}
  270. $tmp=$linje;
  271. while ($tmp=substr(strstr($tmp,","),1)) {$komma++;}
  272. $tmp=$linje;
  273. while ($tmp=substr(strstr($tmp,chr(9)),1)) {$tabulator++;}
  274. $tmp='';
  275. if (($komma>$semikolon)&& ($komma>$tabulator)) {$tmp='Komma'; $feltantal=$komma;}
  276. elseif (($semikolon>$tabulator)&&($semikolon>$komma)) {$tmp='Semikolon'; $feltantal=$semikolon;}
  277. elseif (($tabulator>$semikolon)&&($tabulator>$komma)) {$tmp='Tabulator'; $feltantal=$tabulator;}
  278. if (!$splitter) {$splitter=$tmp;}
  279. $cols=$feltantal+1;
  280. }
  281. fclose($fp);
  282. $x=0;
  283. $q=db_select("select * from varianter",__FILE__ . " linje " . __LINE__);
  284. while ($r=db_fetch_array($q)) {
  285. $varianter_id[$x]=$r['id'];
  286. $varianter_beskrivelse[$x]=strtolower($r['beskrivelse']);
  287. $varianter_shop_id[$x]=$r['shop_id'];
  288. $x++;
  289. }
  290. $q=db_select("select * from variant_varer order by variant_stregkode",__FILE__ . " linje " . __LINE__);
  291. while ($r=db_fetch_array($q)) {
  292. if ($stregkode==$r['variant_stregkode']) {
  293. db_modify("delete from variant_varer where id='$r[id]'",__FILE__ . " linje " . __LINE__);
  294. } else {
  295. $stregkode=$r['variant_stregkode'];
  296. }
  297. }
  298. $x=0;
  299. $q=db_select("select * from variant_typer",__FILE__ . " linje " . __LINE__);
  300. while ($r=db_fetch_array($q)) {
  301. $variant_type_id[$x]=$r['id'];
  302. $variant_type_variant_id[$x]=$r['variant_id'];
  303. $variant_type_beskrivelse[$x]=strtolower($r['beskrivelse']);
  304. $variant_type_shop_id[$x]=$r['shop_id'];
  305. $x++;
  306. }
  307. $x=0;
  308. $q=db_select("select varenr,id,varianter from varer",__FILE__ . " linje " . __LINE__);
  309. while ($r=db_fetch_array($q)) {
  310. $varer_id[$x]=$r['id'];
  311. $varer_nr[$x]=$r['varenr'];
  312. $varer_varianter[$x]=$r['varianter'];
  313. $x++;
  314. }
  315. for ($y=0; $y<=$feltantal; $y++) {
  316. for ($x=0; $x<=$felt_antal; $x++) {
  317. if ($felt_navn[$x] && $feltnavn[$y]==$felt_navn[$x]&& $felt_aktiv[$x]==1) {
  318. print "<BODY onLoad=\"javascript:alert('Der kan kun v&aelig;re 1 kolonne med $felt_navn[$x]')\">";
  319. $feltnavn[$y]='';
  320. } elseif ($felt_navn[$x] && $feltnavn[$y]==$felt_navn[$x]) $felt_aktiv[$x]=1;
  321. }
  322. }
  323. print "<tr><td colspan=$cols><hr></td></tr>\n";
  324. if ((!$splitter)||($splitter=='Semikolon')) {$splitter=';';}
  325. elseif ($splitter=='Komma') {$splitter=',';}
  326. elseif ($splitter=='Tabulator') {$splitter=chr(9);}
  327. # print "<tr><td><span title='Angiv 1. bilagsnummer'><input type=text size=4 name=bilag value=$bilag></span></td>";
  328. transaktion('begin');
  329. #echo "delete from kontoplan where regnskabsaar='$regnskabsaar'<br>";
  330. #db_modify("delete from de where regnskabsaar='$regnskabsaar'");attrelid attname
  331. $r=db_fetch_array(db_select("SELECT relfilenode FROM pg_class WHERE relname = 'variant_varer'",__FILE__ . " linje " . __LINE__)) ;
  332. $relfilenode=$r['relfilenode']*1;
  333. $r=db_fetch_array(db_select("SELECT * FROM pg_attribute WHERE attrelid= '$relfilenode' and attname = 'variant_salgspris'",__FILE__ . " linje " . __LINE__));
  334. if ($r['attisdropped']!='f' || !$r['attname']) {
  335. db_modify("alter TABLE variant_varer ADD variant_salgspris numeric(15,3)",__FILE__ . " linje " . __LINE__);
  336. }
  337. $r=db_fetch_array(db_select("SELECT * FROM pg_attribute WHERE attrelid= '$relfilenode' and attname = 'variant_kostpris'",__FILE__ . " linje " . __LINE__));
  338. if ($r['attisdropped']!='f' || !$r['attname']) {
  339. db_modify("alter TABLE variant_varer ADD variant_kostpris numeric(15,3)",__FILE__ . " linje " . __LINE__);
  340. }
  341. $r=db_fetch_array(db_select("SELECT * FROM pg_attribute WHERE attrelid= '$relfilenode' and attname = 'variant_vejlpris'",__FILE__ . " linje " . __LINE__));
  342. if ($r['attisdropped']!='f' || !$r['attname']) {
  343. db_modify("alter TABLE variant_varer ADD variant_vejlpris numeric(15,3)",__FILE__ . " linje " . __LINE__);
  344. }
  345. $fp=fopen("$filnavn","r");
  346. if ($fp) {
  347. $kontonumre=array();
  348. $x=0;
  349. $imp_antal=0;
  350. $upd_antal=0;
  351. $kostpris=0;
  352. $salgspris=0;
  353. $variant_type=NULL;
  354. $varenr="";
  355. while (!feof($fp)) {
  356. $skriv_linje=0;
  357. if ($linje=fgets($fp)) {
  358. $x++;
  359. $skriv_linje=1;
  360. if ($charset=='UTF-8' && $tegnset!='UTF-8') $linje=utf8_encode($linje);
  361. elseif ($charset!='UTF-8' && $tegnset=='UTF-8') $linje=utf8_decode($linje);
  362. $variant_type=NULL;
  363. $felt=array();
  364. $felt = opdel($splitter, $linje);
  365. for ($y=0; $y<count($felt); $y++) {
  366. $medtag_felt[$y]=1;
  367. if ($feltnavn[$y]=='salgspris') $feltnavn[$y]="variant_salgspris";
  368. if ($feltnavn[$y]=='kostpris') $feltnavn[$y]="variant_kostpris";
  369. if ($feltnavn[$y]=='vejl.pris') $feltnavn[$y]="variant_vejlpris";
  370. if ($feltnavn[$y]=='varenr') $feltnavn[$y]="vare_id";
  371. if ($feltnavn[$y]=='stregkode') $feltnavn[$y]="variant_stregkode";
  372. $felt[$y]=trim($felt[$y]);
  373. $feltnavn[$y]=strtolower($feltnavn[$y]);
  374. if ((substr($felt[$y],0,1) == '"')&&(substr($felt[$y],-1) == '"')) $felt[$y]=substr($felt[$y],1,strlen($felt[$y])-2);
  375. if ($feltnavn[$y]=='stregkode') {
  376. if (!$stregkode=$felt[$y]) $skriv_linje=0;
  377. }
  378. if ($feltnavn[$y]=='vare_id') {
  379. for($i=0;$i<count($varer_id);$i++) {
  380. if ($felt[$y]==$varer_nr[$i]) {
  381. $felt[$y]=$varer_id[$i];
  382. $vare_id=$varer_id[$i];
  383. break 1;
  384. }
  385. }
  386. $felt[$y]*=1;
  387. }
  388. if ($feltnavn[$y]=='variant_kostpris') {
  389. $tmp=str_replace(",","",$felt[$y]);
  390. $tmp=str_replace(".","",$tmp);
  391. if ($tmp && !is_numeric($tmp)) $skriv_linje=0;
  392. elseif (!is_numeric($felt[$y])) $felt[$y]=usdecimal($felt[$y]);
  393. $kostpris=$felt[$y]*1;
  394. }
  395. if ($feltnavn[$y]=='variant_salgspris') {
  396. $tmp=str_replace(",","",$felt[$y]);
  397. $tmp=str_replace(".","",$tmp);
  398. if ($tmp && !is_numeric($tmp)) $skriv_linje=0;
  399. elseif (!is_numeric($felt[$y])) $felt[$y]=usdecimal($felt[$y]);
  400. $salgspris=$felt[$y]*1;
  401. }
  402. if ($feltnavn[$y]=='variant_vejlpris') {
  403. $tmp=str_replace(",","",$felt[$y]);
  404. $tmp=str_replace(".","",$tmp);
  405. if ($tmp && !is_numeric($tmp)) $skriv_linje=0;
  406. elseif (!is_numeric($felt[$y])) $felt[$y]=usdecimal($felt[$y]);
  407. $vejlpris=$felt[$y]*1;
  408. }
  409. #cho "F $feltnavn[$y]<br>";
  410. if (in_array(strtolower($feltnavn[$y]),$varianter_beskrivelse)) {
  411. $medtag_felt[$y]=0;
  412. for($i=0;$i<count($varianter_id);$i++) {
  413. if (strtolower($feltnavn[$y])==$varianter_beskrivelse[$i]) {
  414. for($v=0;$v<count($varer_id);$v++) {
  415. if ($varer_id[$v]==$vare_id) {
  416. $v_var=explode(chr(9),$varer_varianter[$v]);
  417. if (!in_array($varianter_id[$i],$v_var)) {
  418. if ($varer_varianter[$v]) $varer_varianter[$v].=chr(9).$varianter_id[$i];
  419. else $varer_varianter[$v]=$varianter_id[$i];
  420. }
  421. }
  422. }
  423. #echo strtolower($feltnavn[$y])."==".$varianter_beskrivelse[$i]."<br>";
  424. #echo "Felt = $felt[$y]<br>";
  425. $tmp=NULL;
  426. for($t=0;$t<count($variant_type_id);$t++) {
  427. #cho "$felt[$y]!=$variant_type_beskrivelse[$t]<br>";
  428. if (strtolower($felt[$y])==strtolower($variant_type_beskrivelse[$t]))
  429. # $nyt_feltnavn[$y]=$feltnavn[$y];
  430. $tmp=$variant_type_id[$t];
  431. # $variant_type_id[$x]=$r['id'];
  432. # $variant_type_variant_id[$x]=$r['variant_id'];
  433. # $variant_type_beskrivelse[$x]=strtolower($r['beskrivelse']);
  434. # $variant_type_shop_id[$x]=$r['shop_id'];
  435. }
  436. $felt[$y]=$tmp;
  437. if ($variant_type) {
  438. #cho "$variant_type.=chr(9).$tmp<br>";
  439. $variant_type.=chr(9).$tmp;
  440. } else {
  441. #cho "$variant_type.=chr(9).$tmp<br>";
  442. $variant_type=$tmp;
  443. }
  444. }
  445. }
  446. }
  447. if ($feltnavn[$y]=='variant_stregkode') $stregkode=$felt[$y];
  448. }
  449. }
  450. if ($skriv_linje==1) {
  451. $vare_a="variant_type";
  452. $vare_b="'".$variant_type."'";
  453. $upd="variant_type='".$variant_type."'";
  454. for ($y=0; $y<=$feltantal; $y++) {
  455. if ($feltnavn[$y] && $medtag_felt[$y]) {
  456. if ($nyt_feltnavn[$y]) $feltnavn[$y]=$nyt_feltnavn[$y];
  457. $felt[$y]=db_escape_string($felt[$y]);
  458. $vare_a.=",".$feltnavn[$y];
  459. $vare_b.=",'".$felt[$y]."'";
  460. $upd=$upd.",".$feltnavn[$y]."='".$felt[$y]."'";
  461. }
  462. }
  463. #cho "select id from variant_varer where variant_stregkode='$stregkode'<br>";
  464. if ($r=db_fetch_array(db_select("select id from variant_varer where variant_stregkode='$stregkode'",__FILE__ . " linje " . __LINE__))) {
  465. $variant_id=$r['id'];
  466. $upd_antal++;
  467. #cho "update variant_varer set $upd where id='$variant_id'<br>";
  468. db_modify("update variant_varer set $upd where id='$variant_id'",__FILE__ . " linje " . __LINE__);
  469. } else {
  470. $imp_antal++;
  471. #cho "insert into variant_varer($vare_a) values ($vare_b)<br>";
  472. db_modify("insert into variant_varer($vare_a) values ($vare_b)",__FILE__ . " linje " . __LINE__);
  473. }
  474. }
  475. }
  476. }
  477. fclose($fp);
  478. for($v=0;$v<count($varer_id);$v++) {
  479. if ($varer_varianter[$v]) {
  480. $v_var=explode(chr(9),$varer_varianter[$v]);
  481. $v2=array();
  482. $tmp=NULL;
  483. for ($i=0;$i<count($v_var);$i++){
  484. if (!in_array($v_var[$i],$v2)) {
  485. ($tmp)?$tmp.=chr(9).$v_var[$i]:$tmp=$v_var[$i];
  486. }
  487. $v2[$i]=$v_var[$i];
  488. }
  489. db_modify("update varer set varianter = '$tmp' where id='$varer_id[$v]'",__FILE__ . " linje " . __LINE__);
  490. }
  491. }
  492. transaktion('commit');
  493. print "</tbody></table>";
  494. print "</td></tr>";
  495. print "<BODY onLoad=\"javascript:alert('$imp_antal variant_varer importeret, $upd_antal variant_varer opdateret')\">";
  496. #print "<BODY onLoad=\"javascript:alert('$imp_antal varianter importeret')\">";
  497. #print "<meta http-equiv=\"refresh\" content=\"0;URL=../includes/luk.php\">";
  498. exit;
  499. } # endfunc overfoer_data
  500. function nummertjek ($nummer){
  501. $nummer=trim($nummer);
  502. $retur=1;
  503. $nummerliste=array("1", "2", "3", "4", "5", "6", "7", "8", "9", "0", ",", ".", "-");
  504. for ($x=0; $x<strlen($nummer); $x++) {
  505. if (!in_array($nummer{$x}, $nummerliste)) $retur=0;
  506. }
  507. if ($retur) {
  508. for ($x=0; $x<strlen($nummer); $x++) {
  509. if ($nummer{$x}==',') $komma++;
  510. elseif ($nummer{$x}=='.') $punktum++;
  511. }
  512. if ((!$komma)&&(!$punktum)) $retur='US';
  513. elseif (($komma==1)&&(substr($nummer,-3,1)==',')) $retur='DK';
  514. elseif (($punktum==1)&&(substr($nummer,-3,1)=='.')) $retur='US';
  515. elseif (($komma==1)&&(!$punktum)) $retur='DK';
  516. elseif (($punktum==1)&&(!$komma)) $retur='US';
  517. }
  518. return $retur=chr(32);
  519. }
  520. function opdel ($splitter,$linje){
  521. global $feltantal;
  522. $anftegn=0;
  523. $x=0;
  524. $y=0;
  525. if (substr($linje,0,1)==chr(34)) {
  526. $anftegn=1;
  527. $x++;
  528. }
  529. for($z=$x;$z<=strlen($linje);$z++) {
  530. $tegn=substr($linje,$z,1);
  531. if (!$anftegn && substr($linje,$z-1,1)==$splitter && $tegn==chr(34)) {
  532. $anftegn=1;
  533. }
  534. if ($anftegn && $tegn==chr(34) && substr($linje,$z+1,1)==$splitter) {
  535. $y++;
  536. $z++;
  537. $anftegn=0;
  538. } elseif (!$anftegn && substr($linje,$z,1)==$splitter) {
  539. #cho "$y B $var[$y]<br>";
  540. $y++;
  541. } elseif ($tegn!=chr(34)) {
  542. $var[$y]=$var[$y].substr($linje,$z,1);
  543. }
  544. }
  545. return $var;
  546. }
  547. function find_lev_id($kontonr) {
  548. $kontonr=trim($kontonr);
  549. if ($r=db_fetch_array(db_select("select id from adresser where kontonr='$kontonr'",__FILE__ . " linje " . __LINE__))) return ($r['id']);
  550. else return(0);
  551. }
  552. function find_varegrp($gruppe) {
  553. $gruppe=trim($gruppe);
  554. if (!is_numeric($gruppe)) {
  555. $low=strtolower($gruppe);
  556. $up=strtoupper($gruppe);
  557. if ($r=db_fetch_array(db_select("select kodenr from grupper where art='VG' and (lower(beskrivelse)='$low' or upper(beskrivelse)='$up')",__FILE__ . " linje " . __LINE__))) return ($r['kodenr']);
  558. else return(0);
  559. } elseif ($r=db_fetch_array(db_select("select id from grupper where art='VG' and kodenr = '$gruppe'",__FILE__ . " linje " . __LINE__))) return ($gruppe);
  560. else return(0);
  561. }