PageRenderTime 45ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/lager/vareimport.php

https://github.com/nielsrune/saldi
PHP | 317 lines | 269 code | 26 blank | 22 comment | 99 complexity | 66fe6948e2a1150ecf67987b4be2c3dd MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. // -------------------------------------------lager/vareimport.pgp------------patch 1.1.2------------------
  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. //
  10. // Dette program er udgivet med haab om at det vil vaere til gavn,
  11. // men UDEN NOGEN FORM FOR REKLAMATIONSRET ELLER GARANTI. Se
  12. // GNU General Public Licensen for flere detaljer.
  13. //
  14. // En dansk oversaettelse af licensen kan laeses her:
  15. // http://www.fundanemt.com/gpl_da.html
  16. //
  17. // Copyright (c) 2004-2007 DANOSOFT ApS
  18. // ----------------------------------------------------------------------
  19. @session_start();
  20. $s_id=session_id();
  21. $title="Vareimport";
  22. include("../includes/connect.php");
  23. include("../includes/online.php");
  24. include("../includes/dkdato.php");
  25. include("../includes/dkdecimal.php");
  26. include("../includes/db_query.php");
  27. print "<table width=\"100%\" height=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tbody>";
  28. print "<tr><td height = \"25\" align=\"center\" valign=\"top\">";
  29. print "<table width=\"100%\" align=\"center\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\"><tbody>";
  30. print "<td width=\"10%\" $top_bund>$font<small><a href=varer.php? accesskey=L>Luk</a></small></td>";
  31. print "<td width=\"80%\" $top_bund align=\"center\">$font<small>Vareimport</small></td>";
  32. print "<td width=\"10%\" $top_bund align=\"right\">$font</td>";
  33. print "</tbody></table>";
  34. print "</td></tr>";
  35. if($_POST) {
  36. $submit=trim($_POST[submit]);
  37. $filnavn=$_POST['filnavn'];
  38. $splitter=$_POST['splitter'];
  39. $feltnavn=$_POST['feltnavn'];
  40. $feltantal=$_POST['feltantal'];
  41. $leverandor=$_POST['leverandor'];
  42. $varegrp=$_POST['varegrp'];
  43. $rabat=$_POST['rabat'];
  44. echo "Submit $submit<br>";
  45. if ($submit=="Flyt") {
  46. flyt_data($filnavn, $splitter, $feltnavn, $feltantal, $leverandor,$varegrp, $rabat);
  47. }
  48. if (basename($_FILES['uploadedfile']['name'])) {
  49. $filnavn = "../temp/" . basename( $_FILES['uploadedfile']['name']);
  50. if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $filnavn)) {
  51. # echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded";
  52. vis_data($filnavn, $splitter, $feltnavn, $feltantal, $leverandor,$varegrp, $rabat);
  53. # vis_data($kladde_id, $_FILES['uploadedfile']['name'], '', '', 1);
  54. }else{
  55. echo "Der er sket en fejl ved hentningen af filen, pr&oslash;v igen!";
  56. }
  57. exit;
  58. }
  59. elseif($splitter){
  60. vis_data($filnavn, $splitter, $feltnavn, $feltantal, $leverandor,$varegrp, $rabat);
  61. } else upload();
  62. } else upload();
  63. print "</tbody></table>";
  64. ################################################################################################################
  65. function upload(){
  66. global $font;
  67. print "<tr><td width=100% align=center><table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tbody>";
  68. print "<form enctype=\"multipart/form-data\" action=\"vareimport.php\" method=\"POST\">";
  69. print "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"9999999\" />";
  70. print "<input type=\"hidden\" name=\"kladde_id\" value=$kladde_id />";
  71. print "<tr><td width=100% align=center>$font V&aelig;lg datafil: <input name=\"uploadedfile\" type=\"file\" /><br /></td></tr>";
  72. print "<tr><td><br></td></tr>";
  73. print "<tr><td align=center><input type=\"submit\" value=\"Hent\" /></td></tr>";
  74. print "<tr><td></form></td></tr>";
  75. print "</tbody></table>";
  76. print "</td></tr>";
  77. }
  78. function vis_data($filnavn, $splitter, $feltnavn, $feltantal, $leverandor,$varegrp, $rabat){
  79. global $font;
  80. list($kontonr, $tmp)=explode(" : ", $leverandor);
  81. if (!$feltnavn) $feltnavn=array();
  82. $fp=fopen("../temp/".$filnavn,"r");
  83. if ($fp) {
  84. $linje=fgets($fp);
  85. $tmp=$linje;
  86. while ($tmp=substr(strstr($tmp,";"),1)) {$semikolon++;}
  87. $tmp=$linje;
  88. while ($tmp=substr(strstr($tmp,","),1)) {$komma++;}
  89. $tmp=$linje;
  90. while ($tmp=substr(strstr($tmp,chr(9)),1)) {$tabulator++;}
  91. $tmp='';
  92. if (($komma>$semikolon)&& ($komma>$tabulator)) {$tmp='Komma'; $feltantal=$komma;}
  93. elseif (($semikolon>$tabulator)&&($semikolon>$komma)) {$tmp='Semikolon'; $feltantal=$semikolon;}
  94. elseif (($tabulator>$semikolon)&&($tabulator>$komma)) {$tmp='Tabulator'; $feltantal=$tabulator;}
  95. if (!$splitter) {$splitter=$tmp;}
  96. elseif ($splitter=="Brdr. Dahl") $feltantal=7;
  97. }
  98. fclose($fp);
  99. print "<tr><td width=100% align=center><table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"1\"><tbody>";
  100. print "<form enctype=\"multipart/form-data\" action=\"vareimport.php\" method=\"POST\">";
  101. #print "<tr><td colspan=6 width=100% align=center>$font $filnavn</td></tr>";
  102. print "<tr><td colspan=$feltantal align=center>$font Separatortegn &nbsp;<select name=splitter>\n";
  103. if ($splitter) print "<option>$splitter</option>\n";
  104. if ($splitter!='Semikolon') print "<option>Semikolon</option>\n";
  105. if ($splitter!='Komma') print "<option>Komma</option>\n";
  106. if ($splitter!='Tabulator') print "<option>Tabulator</option>\n";
  107. if ($splitter!='Brdr. Dahl') print "<option>Brdr. Dahl</option>\n";
  108. print "</select>";
  109. print "&nbsp; Leverand&oslash;r &nbsp;<select name=leverandor>\n";
  110. if ($leverandor) print "<option>$leverandor</option>\n";
  111. $q = db_select("select * from adresser where art='K'");
  112. print "<option></option>";
  113. while ($r = db_fetch_array($q)) {
  114. if ($r[kontonr]!=$kontonr) print "<option>$r[kontonr] : $r[firmanavn]</option>";
  115. }
  116. print "</select>";
  117. if (!in_array('Varegrp.', $feltnavn)) {
  118. print "&nbsp; Varegrp. &nbsp;<select name=varegrp>\n";
  119. if ($varegrp) print "<option>$varegrp</option>\n";
  120. $q = db_select("select * from grupper where art='VG'");
  121. print "<option></option>";
  122. while ($r = db_fetch_array($q)) {
  123. if ($r[kodenr]!=$kodenr) print "<option>$r[kodenr] : $r[beskrivelse]</option>";
  124. }
  125. print "</select>";
  126. }
  127. if (!in_array('Kostpris', $feltnavn) && in_array('Salgspris', $feltnavn)) {
  128. print "&nbsp; Rabat &nbsp;<input type=text name = rabat size=2 value=$rabat>&nbsp;%\n";
  129. }
  130. print "<input type=\"hidden\" name=\"filnavn\" value=$filnavn>";
  131. print "<input type=\"hidden\" name=\"feltantal\" value=$feltantal>";
  132. print "&nbsp; <input type=\"submit\" name=submit value=\"Vis\" />";
  133. if (in_array('Beskrivelse',$feltnavn) && in_array('Salgspris',$feltnavn) && (in_array('Kostpris',$feltnavn) || $rabat) && in_array('Enhed',$feltnavn) && (in_array('Varegrp.',$feltnavn) || $varegrp)) {
  134. print "&nbsp; <input type=\"submit\" name=submit value=\"Flyt\" />";
  135. }
  136. print "</td></tr>";
  137. if ((!$splitter)||($splitter=='Semikolon')) $splitter=';';
  138. elseif ($splitter=='Komma') $splitter=',';
  139. elseif ($splitter=='Tabulator') $splitter=chr(9);
  140. elseif ($splitter=='Brdr. Dahl') $feltantal=7;
  141. for ($y=0; $y<$feltantal; $y++) {
  142. print "<td><select name=feltnavn[$y]>\n";
  143. if ($feltnavn[$y]=='Varegrp.' && $varegrp) $feltnavn[$y] =='';
  144. print "<option>$feltnavn[$y]</option>\n";
  145. if (!in_array('Eget varenr.',$feltnavn) && !in_array('Begge varenr.',$feltnavn)) print "<option>Eget varenr.</option>\n";
  146. if (!in_array('Lev. varenr.',$feltnavn) && !in_array('Begge varenr.',$feltnavn)) print "<option>Lev. varenr.</option>\n";
  147. if (!in_array('Eget varenr.',$feltnavn) && !in_array('Lev. varenr.',$feltnavn) && !in_array('Begge varenr.',$feltnavn)) print "<option>Begge varenr.</option>\n";
  148. elseif ($feltnavn[$y]=='Eget varenr.' && !in_array('Lev. varenr.',$feltnavn) && !in_array('Begge varenr.',$feltnavn)) print "<option>Begge varenr.</option>\n";
  149. elseif ($feltnavn[$y]=='Begge varenr.') {
  150. print "<option>Eget varenr.</option>\n";
  151. print "<option>Lev. varenr.</option>\n";
  152. }
  153. if (!in_array('Beskrivelse',$feltnavn)) print "<option>Beskrivelse</option>\n";
  154. if (!in_array('Salgspris',$feltnavn)) print "<option>Salgspris</option>\n";
  155. if (!in_array('Kostpris',$feltnavn) && !$rabat) print "<option>Kostpris</option>\n";
  156. if (!in_array('Enhed',$feltnavn)) print "<option>Enhed</option>\n";
  157. if (!in_array('Varegrp.',$feltnavn) && !$varegrp) print "<option>Varegrp.</option>\n";
  158. if ($feltnavn[$y]) print "<option></option>\n";
  159. print "</select>";
  160. if ($feltnavn[$y]=='Salgspris' && $rabat) print "</td><td>$font Kostpris\n";
  161. print "</td>";
  162. }
  163. print "</form>";
  164. $fp=fopen("../temp/".$filnavn,"r");
  165. if ($fp) {
  166. $x=0;
  167. while (!feof($fp)) {
  168. $x++;
  169. $linje=fgets($fp);
  170. $felt=array();
  171. if ($splitter=='Brdr. Dahl') {
  172. print "<tr>";
  173. $felt[0]=substr($linje,1,10);
  174. $felt[1]=substr($linje,12,35);
  175. $felt[2]=substr($linje,47,10);
  176. $felt[3]=substr($linje,58,3);
  177. $felt[4]=substr($linje,61,3);
  178. $felt[5]=substr($linje,64,1);
  179. $felt[6]=substr($linje,65,3);
  180. $felt[1]=str_replace(chr(145),"ć",$felt[1]);
  181. $felt[1]=str_replace(chr(155),"ř",$felt[1]);
  182. $felt[1]=str_replace(chr(134),"ĺ",$felt[1]);
  183. $felt[1]=str_replace(chr(146),"Ć",$felt[1]);
  184. $felt[1]=str_replace(chr(157),"Ř",$felt[1]);
  185. $felt[1]=str_replace(chr(143),"Ĺ",$felt[1]);
  186. } else $felt = explode($splitter, $linje);
  187. for ($y=0; $y<$feltantal; $y++) {
  188. if ($feltnavn[$y] == 'Varegrp.' && !in_array($felt[$y], $feltnavn)) $linjefarve[$x]='red';
  189. }
  190. for ($y=0; $y<$feltantal; $y++) {
  191. if ((substr($felt[$y],0,1) == '"')&&(substr($felt[$y],-1) == '"')) $felt[$y]=substr($felt[$y],1,strlen($felt[$y])-2);
  192. if ($linjefarve[$x]=='red' && $feltnavn[$y]) print "<td><FONT COLOR=#FF0000><small>$felt[$y]&nbsp;</small></td>";
  193. elseif ($feltnavn[$y]) {
  194. if ($feltnavn[$y]=='Salgspris') {
  195. $tmp=dkdecimal($felt[$y]/100);
  196. print "<td><FONT COLOR=#000000><small>$tmp&nbsp;</small></td>";
  197. if ($rabat) {
  198. $tmp=dkdecimal(($felt[$y]/100)-($felt[$y]/10000*$rabat));
  199. print "<td><FONT COLOR=#000000><small>$tmp&nbsp;</small></td>";
  200. }
  201. }
  202. else print "<td><FONT COLOR=#000000><small>$felt[$y]&nbsp;</small></td>";
  203. }
  204. else print "<td><FONT COLOR=#999999><small>$felt[$y]&nbsp;</small></td>";
  205. }
  206. print "</tr>";
  207. }
  208. if ($linjefarve) print "<BODY onLoad=\"javascript:alert('Rřde linjer vil ikke blive importeret - varegruppe findes ikke')\">";
  209. }
  210. fclose($fp);
  211. print "</tbody></table>";
  212. print "</td></tr>";
  213. }
  214. function flyt_data($filnavn, $splitter, $feltnavn, $feltantal, $leverandor,$varegrp, $rabat)
  215. {
  216. global $font;
  217. list($kontonr, $tmp)=explode(" : ", $leverandor);
  218. if (!$feltnavn) $feltnavn=array();
  219. list($lev_id, $tmp)=explode(":",$leverandor);
  220. list($gruppe, $tmp)=explode(":",$varegrp);
  221. $x=0;
  222. $q = db_select("select varenr from varer");
  223. while ($r = db_fetch_array($q)) {
  224. $x++;
  225. $exist_vnr[$x]=$r['varenr'];
  226. }
  227. if ((!$splitter)||($splitter=='Semikolon')) $splitter=';';
  228. elseif ($splitter=='Komma') $splitter=',';
  229. elseif ($splitter=='Tabulator') $splitter=chr(9);
  230. elseif ($splitter=='Brdr. Dahl') $feltantal=7;
  231. #for ($y=0; $y<$feltantal; $y++) {
  232. $fp=fopen("../temp/".$filnavn,"r");
  233. if ($fp) {
  234. transaktion('begin');
  235. $x=0;
  236. while (!feof($fp)) {
  237. $x++;
  238. $linje=fgets($fp);
  239. $felt=array();
  240. if ($splitter=='Brdr. Dahl') {
  241. $felt[0]=substr($linje,1,10);
  242. $felt[1]=substr($linje,12,35);
  243. $felt[2]=substr($linje,47,10);
  244. $felt[3]=substr($linje,58,3);
  245. $felt[4]=substr($linje,61,3);
  246. $felt[5]=substr($linje,64,1);
  247. $felt[6]=substr($linje,65,3);
  248. $felt[1]=str_replace(chr(145),"ć",$felt[1]);
  249. $felt[1]=str_replace(chr(155),"ř",$felt[1]);
  250. $felt[1]=str_replace(chr(134),"ĺ",$felt[1]);
  251. $felt[1]=str_replace(chr(146),"Ć",$felt[1]);
  252. $felt[1]=str_replace(chr(157),"Ř",$felt[1]);
  253. $felt[1]=str_replace(chr(143),"Ĺ",$felt[1]);
  254. } else $felt = explode($splitter, $linje);
  255. for ($y=0; $y<$feltantal; $y++) if ($feltnavn[$y] == 'Varegrp.' && !in_array($felt[$y], $feltnavn)) $linjefarve[$x]='red';
  256. for ($y=0; $y<$feltantal; $y++) {
  257. if ((substr($felt[$y],0,1) == '"')&&(substr($felt[$y],-1) == '"')) $felt[$y]=substr($felt[$y],1,strlen($felt[$y])-2);
  258. if ($linjefarve[$x]!='red' && $feltnavn[$y]) {
  259. if ($feltnavn[$y]=='Eget varenr.') $varenr=trim($felt[$y]);
  260. elseif ($feltnavn[$y]=='Lev. varenr.') $lev_varenr=trim($felt[$y]);
  261. elseif ($feltnavn[$y]=='Begge varenr.') {$varenr=trim($felt[$y]); $lev_varenr=trim($felt[$y]);}
  262. elseif ($feltnavn[$y]=='Beskrivelse') $beskrivelse=addslashes($felt[$y]);
  263. elseif ($feltnavn[$y]=='Enhed') $enhed=$felt[$y];
  264. elseif ($feltnavn[$y]=='Salgspris') {
  265. $salgspris=$felt[$y]/100;
  266. if ($rabat) {
  267. $kostpris=($felt[$y]/100)-($felt[$y]/10000*$rabat);
  268. }
  269. }
  270. elseif ($feltnavn[$y]=='Kostpris') $kostpris=$felt[$y];
  271. }
  272. }
  273. if (in_array($varenr[$y],$exist_vnr)) {
  274. db_modify("update varer set beskrivelse='$beskrivelse', salgspris='$salgspris', kostpris=$kostpris, enhed=$enhed, gruppe=$gruppe where varenr='$varenr'");
  275. $r=db_fetch_array(db_select("select id from varer where varenr='$varenr'"));
  276. $r2=db_fetch_array(db_select("select id from vare_lev where vare_id='$r[id]' and lev_id='$lev_id'"));
  277. if ($r2[id]) db_modify("update vare_lev set kostpris=$kostpris[$y], lev_varenr=$lev_varenr[$y] where id='$r2[id]'");
  278. else db_modify("insert into vare_lev(vare_id, lev_id, lev_varenr, kostpris) values ('$r[id]', '$lev_id', '$lev_varenr', '$kostpris')");
  279. } else {
  280. db_modify("insert into varer (varenr, beskrivelse, salgspris, kostpris, enhed, gruppe) values ('$varenr', '$beskrivelse', '$salgspris', '$kostpris', '$enhed', '$gruppe')");
  281. $r=db_fetch_array(db_select("select id from varer where varenr='$varenr'"));
  282. db_modify("insert into vare_lev(vare_id, lev_id, lev_varenr, kostpris) values ('$r[id]', '$lev_id', '$lev_varenr', '$kostpris')");
  283. }
  284. }
  285. transaktion('commit');
  286. }
  287. fclose($fp);
  288. print "</tbody></table>";
  289. print "</td></tr>";
  290. }
  291. ?>