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

/systemdata/importer_adresser.php

https://github.com/nielsrune/saldi
PHP | 603 lines | 513 code | 36 blank | 54 comment | 171 complexity | c02299e63fe5d4ac0c39cf0f61725b3c MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. // ------systemdata/importer_adresser.php---lap 3.2.9---2013-02-10--------
  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. // 2013.02.10 Break ændret til break 1
  24. @session_start();
  25. $s_id=session_id();
  26. $css="../css/standard.css";
  27. $title="Importer_adresser";
  28. include("../includes/connect.php");
  29. include("../includes/online.php");
  30. include("../includes/std_func.php");
  31. print "<div align=\"center\">";
  32. print "<table width=\"100%\" height=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tbody>";
  33. print "<tr><td height = \"25\" align=\"center\" valign=\"top\">";
  34. print "<table width=\"100%\" align=\"center\" border=\"0\" cellspacing=\"2\" cellpadding=\"0\"><tbody>";
  35. if ($popup) print "<td width=\"10%\" $top_bund><a href=../includes/luk.php accesskey=L>Luk</a></td>";
  36. else print "<td width=\"10%\" $top_bund><a href=diverse.php?sektion=div_io accesskey=L>Luk</a></td>";
  37. print "<td width=\"80%\" $top_bund>$title</td>";
  38. print "<td width=\"10%\" $top_bund><br></td>";
  39. print "</tbody></table>";
  40. print "</td></tr>";
  41. if($_POST) {
  42. $submit=$_POST['submit'];
  43. $art=$_POST['art'];
  44. $opdat=$_POST['opdat'];
  45. if (strstr($submit, "Import")) $submit="Importer";
  46. $filnavn=$_POST['filnavn'];
  47. $splitter=$_POST['splitter'];
  48. $feltnavn=$_POST['feltnavn'];
  49. $feltantal=$_POST['feltantal'];
  50. $kontonr=$_POST['kontonr'];
  51. $kontotype=$_POST['kontotype'];
  52. $bilag=$_POST['bilag'];
  53. if (basename($_FILES['uploadedfile']['name'])) {
  54. $filnavn="../temp/".$db."_".str_replace(" ","_",$brugernavn).".csv";
  55. if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $filnavn)) {
  56. vis_data($filnavn, '', '', 1, $kontonr, $bilag);
  57. } else echo "Der er sket en fejl under hentningen, pr&oslash;v venligst igen";
  58. } elseif($submit=='Vis'){
  59. vis_data($filnavn, $splitter, $feltnavn, $feltantal, $kontonr, $bilag);
  60. } elseif($submit=='Importer'){
  61. if (($filnavn)&&($splitter)) overfoer_data($filnavn, $splitter, $feltnavn, $feltantal);
  62. else vis_data($filnavn, $splitter, $feltnavn, $feltantal, $kontonr, $bilag);
  63. }
  64. } else {
  65. # if (!$r1=db_fetch_array(db_select("select box1, box2, beskrivelse from grupper where art='RA' order by kodenr desc",__FILE__ . " linje " . __LINE__))) {
  66. # exit;
  67. # }
  68. upload($bilag);
  69. }
  70. print "</tbody></table>";
  71. #####################################################################################################
  72. function upload($bilag){
  73. print "<tr><td width=100% align=center><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tbody>";
  74. print "<form enctype=\"multipart/form-data\" action=\"importer_adresser.php\" method=\"POST\">";
  75. print "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"900000\">";
  76. print "<tr><td width=\"150px\">Import art</td><td align=\"right\"><select name=\"art\" style=\"width:150px\">\n";
  77. if ($art!='D') print "<option value=\"D\">Debitorimport</option>\n";
  78. if ($art!='K') print "<option value=\"K\">Kreditorimport</option>\n";
  79. print "</select></span></td></tr>";
  80. print "<tr><td width=\"150px\">Opdater eksisterende</td><td align=\"right\"><input type=\"checkbox\" name=\"opdat\"></td></tr>";
  81. print "<tr><td colspan=\"2\"><hr></td></tr>";
  82. print "<tr><td> V&aelig;lg datafil:</td><td><input name=\"uploadedfile\" type=\"file\"></td></tr>";
  83. print "<tr><td colspan=\"2\"><hr></td></tr>";
  84. print "<tr><td colspan=\"2\" align=center><input type=\"submit\" value=\"Hent\"></td></tr>";
  85. print "</form>";
  86. print "</tbody></table>";
  87. print "</td></tr>";
  88. }
  89. function vis_data($filnavn, $splitter, $feltnavn, $feltantal){
  90. global $charset;
  91. global $sprog_id;
  92. global $art;
  93. global $opdat;
  94. $fp=fopen("$filnavn","r");
  95. if ($fp) {
  96. for ($y=1; $y<4; $y++) $linje=fgets($fp);#korer frem til linje nr. 4.
  97. if ($charset=='UTF-8') $linje=utf8_encode($linje);
  98. $tmp=$linje;
  99. while ($tmp=substr(strstr($tmp,";"),1)) {$semikolon++;}
  100. $tmp=$linje;
  101. while ($tmp=substr(strstr($tmp,","),1)) {$komma++;}
  102. $tmp=$linje;
  103. while ($tmp=substr(strstr($tmp,chr(9)),1)) {$tabulator++;}
  104. $tmp='';
  105. if (($komma>$semikolon)&& ($komma>$tabulator)) {$tmp='Komma'; $feltantal=$komma;}
  106. elseif (($semikolon>$tabulator)&&($semikolon>$komma)) {$tmp='Semikolon'; $feltantal=$semikolon;}
  107. elseif (($tabulator>$semikolon)&&($tabulator>$komma)) {$tmp='Tabulator'; $feltantal=$tabulator;}
  108. if (!$splitter) {$splitter=$tmp;}
  109. $cols=$feltantal+1;
  110. }
  111. fclose($fp);
  112. $tmp='';
  113. ($art=='D')?$box='box1':$box='box2';
  114. if ($feltnavn) {
  115. for ($y=0; $y<=$feltantal; $y++) {
  116. if ($y) $tmp=$tmp.";".$feltnavn[$y];
  117. else $tmp=$feltnavn[$y];
  118. }
  119. if ($r=db_fetch_array(db_select("select id from grupper where art='IMP'",__FILE__ . " linje " . __LINE__))) {
  120. db_modify("update grupper set $box='$tmp' where id='$r[id]'",__FILE__ . " linje " . __LINE__);
  121. } else {
  122. db_modify("insert into grupper(beskrivelse,kodenr,art,$box) values ('Importsettings','1','IMP','$tmp')",__FILE__ . " linje " . __LINE__);
  123. }
  124. # setcookie("saldi_debimp",$tmp,time()+60*60*24*30);
  125. } elseif ($r=db_fetch_array(db_select("select $box from grupper where art='IMP'",__FILE__ . " linje " . __LINE__))) {
  126. $feltnavn=explode(";",$r[$box]);
  127. } elseif (isset($_COOKIE['saldi_debimp'])) {
  128. $tmp = $_COOKIE['saldi_debimp'];
  129. $feltnavn=explode(";",$tmp);
  130. }
  131. print "<tr><td width=100% align=center><table width=\"100%\" border=\"1\" cellspacing=\"1\" cellpadding=\"1\"><tbody>";
  132. print "<form enctype=\"multipart/form-data\" action=\"importer_adresser.php\" method=\"POST\">";
  133. #print "<tr><td colspan=6 width=100% align=center> $filnavn</td></tr>";
  134. print "<tr><td colspan=$cols><table><tbody>";
  135. print "<tr><td>Konto art:<b>$art</b></td>\n";
  136. print "<input type=\"hidden\" name=\"art\" value=\"$art\">\n";
  137. print "<input type=\"hidden\" name=\"opdat\" value=\"$opdat\">\n";
  138. print "</select></span>";
  139. print "<td colspan=\"$cols\" align=\"right\"><span title='Angiv hvilket skilletegn der anvendes til opdeling af kolonner'>Separatortegn&nbsp;<select name=splitter>\n";
  140. if ($splitter) print "<option>$splitter</option>\n";
  141. if ($splitter!='Semikolon') print "<option>Semikolon</option>\n";
  142. if ($splitter!='Komma') print "<option>Komma</option>\n";
  143. if ($splitter!='Tabulator') print "<option>Tabulator</option>\n";
  144. print "</select></span>";
  145. print "<input type=\"hidden\" name=\"filnavn\" value=$filnavn>";
  146. print "<input type=\"hidden\" name=\"feltantal\" value=$feltantal>";
  147. print "&nbsp; <input type=\"submit\" name=\"submit\" value=\"Vis\" />";
  148. # if (!$art) $felt_navn=array("art","kontonr","firmanavn","fornavn","efternavn","addr1","husnr","etage","addr2","postnr","bynavn","land","kontakt","tlf","fax","email","web","notes","kreditmax","betalingsbet","betalingsdage","cvrnr","ean","institution","gruppe","kontoansvarlig","oprettet","felt_1","felt_2","felt_3","felt_4","felt_5","kategori","kontakt_navn","kontakt_addr1","kontakt_addr2","kontakt_postnr","kontakt_bynavn","kontakt_tlf","kontakt_fax","kontakt_email","kontakt_notes");
  149. #else
  150. if ($art!='D') {
  151. $felt_navn=array("kontonr","firmanavn","addr1","addr2","postnr","bynavn","land","kontakt","tlf","fax","email","web","notes","kreditmax","betalingsbet","betalingsdage","cvrnr","bank_navn","bank_reg","bank_konto","bank_fi","swift","erh","gruppe","oprettet","felt_1","felt_2","felt_3","felt_4","felt_5","kategori","kontakt_navn","kontakt_addr1","kontakt_addr2","kontakt_postnr","kontakt_bynavn","kontakt_tlf","kontakt_fax","kontakt_email","kontakt_notes");
  152. $felt_antal=count($felt_navn);
  153. for ($x=0; $x<$felt_antal; $x++) {
  154. $felt_betegn[$x]=$felt_navn[$x];
  155. }
  156. } else {
  157. $felt_navn=array("kontonr","firmanavn","fornavn","efternavn","addr1","husnr","etage","addr2","postnr","bynavn","land","kontakt","tlf","fax","email","web","notes","kreditmax","betalingsbet","betalingsdage","cvrnr","ean","institution","pbs_nr","gruppe","kontoansvarlig","oprettet","felt_1","felt_2","felt_3","felt_4","felt_5","kategori","status","kontakt_navn","kontakt_addr1","kontakt_addr2","kontakt_postnr","kontakt_bynavn","kontakt_tlf","kontakt_fax","kontakt_email","kontakt_notes");
  158. $felt_tekst_id=array("357","360","358","359","361","412","413","362","144","146","364","370","377","378","402","367","391","381","368","57","376","379","380","414","374","386","65","255","256","257","258","259","388","494","403","404","405","406","407","408","409","410","411");
  159. $felt_antal=count($felt_navn);
  160. for ($x=0; $x<$felt_antal; $x++) {
  161. $felt_betegn[$x]=findtekst($felt_tekst_id[$x],$sprog_id);
  162. }
  163. }
  164. $kontotype=NULL;
  165. for ($y=0; $y<=$feltantal; $y++) {
  166. for ($x=0; $x<$felt_antal; $x++) {
  167. if ($felt_navn[$x] && $feltnavn[$y]==$felt_navn[$x] && $felt_aktiv[$x]==1) {
  168. print "<BODY onLoad=\"javascript:alert('Der kan kun v&aelig;re 1 kolonne med $felt_navn[$x]')\">";
  169. $feltnavn[$y]='';
  170. } elseif ($felt_navn[$x] && $feltnavn[$y]==$felt_navn[$x]) $felt_aktiv[$x]=1;
  171. }
  172. if ($feltnavn[$y]=='kontonr')$kontonr=1;
  173. if ($feltnavn[$y]=='firmanavn') $kontotype='erhverv';
  174. if ($feltnavn[$y]=='fornavn') $kontotype='privat';
  175. }
  176. print "<input type=\"hidden\" name=\"kontotype\" value=\"$kontotype\">";
  177. if ($filnavn && $splitter && $kontotype) print "&nbsp; <input type=\"submit\" name=\"submit\" value=\"Import&eacute;r\"></td></tr>";
  178. print "</td></tbody></table></td></tr>";
  179. print "<tr><td colspan=$cols><hr></td></tr>\n";
  180. if ((!$splitter)||($splitter=='Semikolon')) {$splitter=';';}
  181. elseif ($splitter=='Komma') {$splitter=',';}
  182. elseif ($splitter=='Tabulator') {$splitter=chr(9);}
  183. for ($y=0; $y<=$feltantal; $y++) {
  184. $tmp='';
  185. for ($x=0; $x<=$felt_antal; $x++) {
  186. if ($feltnavn[$y]==$felt_navn[$x])$tmp=$felt_betegn[$x];
  187. }
  188. if ($feltnavn[$y]) {
  189. print "<td><select name=feltnavn[$y]>\n";
  190. }
  191. else print "<td align=center><select name=feltnavn[$y]>\n";
  192. print "<option value=\"$feltnavn[$y]\">$tmp</option>\n";
  193. if ($feltnavn[$y]) print "<option></option>\n";
  194. for ($x=0; $x<=$felt_antal; $x++) {
  195. if ($feltnavn[$y]!=$felt_navn[$x]) print "<option value=\"$felt_navn[$x]\">$felt_betegn[$x]</option>\n";
  196. }
  197. print "</select>";
  198. print "</td>";
  199. }
  200. print "</form></td></tr>";
  201. $fp=fopen("$filnavn","r");
  202. if ($fp) {
  203. $x=0;
  204. $kontonumre=array();
  205. while (!feof($fp)) {
  206. $skriv_linje=0;
  207. if ($linje=fgets($fp)) {
  208. $x++;
  209. $skriv_linje=1;
  210. if ($charset=='UTF-8') $linje=utf8_encode($linje);
  211. $felt=array();
  212. $felt = opdel($splitter, $linje);
  213. for ($y=0; $y<=$feltantal; $y++) {
  214. $felt[$y]=trim($felt[$y]);
  215. if ((substr($felt[$y],0,1) == '"')&&(substr($felt[$y],-1) == '"')) $felt[$y]=substr($felt[$y],1,strlen($felt[$y])-2);
  216. if ($feltnavn[$y]=='kontonr'&&!is_numeric($felt[$y])) {
  217. $skriv_linje=2;
  218. print "<BODY onLoad=\"javascript:alert('R&oslash;de linjer indeholder fejl (kontonummer ikke numerisk) og bliver ikke importeret')\">";
  219. }
  220. }
  221. }
  222. if ($skriv_linje>=1){
  223. print "<tr>";
  224. if ($skriv_linje==2) $color="#e00000";
  225. else $color="#000000";
  226. for ($y=0; $y<=$feltantal; $y++) {
  227. if ($feltnavn[$y]) {print "<td><span style=\"color: $color;\">$felt[$y]&nbsp;</span></td>";}
  228. else {print "<td align=center><span style=\"color: rgb(153, 153, 153);\">$felt[$y]&nbsp;</span></td>";}
  229. }
  230. print "</tr>";
  231. }
  232. }
  233. }
  234. fclose($fp);
  235. print "</tbody></table>";
  236. print "</td></tr>";
  237. }
  238. function overfoer_data($filnavn, $splitter, $feltnavn, $feltantal){
  239. global $charset;
  240. global $kontotype;
  241. global $art;
  242. global $opdat;
  243. $x=0;
  244. $fp=fopen("../importfiler/postnr.csv","r");
  245. if ($fp) {
  246. while (!feof($fp)) {
  247. $x++;
  248. $linje=trim(fgets($fp));
  249. list($postnr[$x],$bynavn[$x])=explode(chr(9),$linje);
  250. }
  251. }
  252. fclose($fp);
  253. $postnr_antal=$x;
  254. $fp=fopen("$filnavn","r");
  255. if ($fp) {
  256. for ($y=1; $y<4; $y++) $linje=fgets($fp);
  257. $tmp=$linje;
  258. while ($tmp=substr(strstr($tmp,";"),1)) {$semikolon++;}
  259. $tmp=$linje;
  260. while ($tmp=substr(strstr($tmp,","),1)) {$komma++;}
  261. $tmp=$linje;
  262. while ($tmp=substr(strstr($tmp,chr(9)),1)) {$tabulator++;}
  263. $tmp='';
  264. if (($komma>$semikolon)&& ($komma>$tabulator)) {$tmp='Komma'; $feltantal=$komma;}
  265. elseif (($semikolon>$tabulator)&&($semikolon>$komma)) {$tmp='Semikolon'; $feltantal=$semikolon;}
  266. elseif (($tabulator>$semikolon)&&($tabulator>$komma)) {$tmp='Tabulator'; $feltantal=$tabulator;}
  267. if (!$splitter) {$splitter=$tmp;}
  268. $cols=$feltantal+1;
  269. }
  270. fclose($fp);
  271. for ($y=0; $y<=$feltantal; $y++) {
  272. for ($x=0; $x<=$felt_antal; $x++) {
  273. if ($felt_navn[$x] && $feltnavn[$y]==$felt_navn[$x]&& $felt_aktiv[$x]==1) {
  274. print "<BODY onLoad=\"javascript:alert('Der kan kun v&aelig;re 1 kolonne med $felt_navn[$x]')\">";
  275. $feltnavn[$y]='';
  276. } elseif ($felt_navn[$x] && $feltnavn[$y]==$felt_navn[$x]) $felt_aktiv[$x]=1;
  277. }
  278. }
  279. print "<tr><td colspan=$cols><hr></td></tr>\n";
  280. if ((!$splitter)||($splitter=='Semikolon')) {$splitter=';';}
  281. elseif ($splitter=='Komma') {$splitter=',';}
  282. elseif ($splitter=='Tabulator') {$splitter=chr(9);}
  283. transaktion('begin');
  284. #$felt_antal=$feltantal;
  285. if ($r=db_fetch_array(db_select("select * from grupper where art='DebInfo'",__FILE__ . " linje " . __LINE__))) {
  286. $status_id=explode(chr(9),$r['box3']);
  287. $status_beskrivelse=explode(chr(9),$r['box4']);
  288. $status_antal=count($status_id);
  289. # for ($x=0;$x<$status_antal;$x++)$status_beskrivelse[$x]=addslashes($status_beskrivelse[$x]);
  290. } else {
  291. db_modify("insert into grupper(beskrivelse,art) values ('Div DebitorInfo','DebInfo')",__FILE__ . " linje " . __LINE__);
  292. db_fetch_array(db_select("select box3 from grupper where art='DebInfo'",__FILE__ . " linje " . __LINE__));
  293. $status_id=array();
  294. $status_beskrivelse=array();
  295. $status_antal=0;
  296. }
  297. $ryd_firmanavn=0;
  298. $fp=fopen("$filnavn","r");
  299. if ($fp) {
  300. $kontonumre=array();
  301. $x=0;
  302. $imp_antal=0;
  303. while (!feof($fp)) {
  304. # $feltantal=$felt_antal;
  305. $skriv_linje=0;
  306. if ($linje=fgets($fp)) {
  307. $x++;
  308. $skriv_linje=1;
  309. if ($charset=='UTF-8') $linje=utf8_encode($linje);
  310. $felt=array();
  311. $felt = opdel($splitter, $linje);
  312. # if ($ryd_firmanavn) $felt[$ryd_firmanavn]='';
  313. if (in_array('pbs_nr',$feltnavn) && !in_array('pbs',$feltnavn)) {
  314. $feltantal++;
  315. $pbs=$feltantal;
  316. $feltnavn[$feltantal]='pbs';
  317. $felt[$feltantal]='';
  318. }
  319. if (in_array('husnr',$feltnavn)) {
  320. $felt=add2felt($feltantal,'husnr','addr1',$feltnavn,$felt);
  321. }
  322. if (in_array('etage',$feltnavn)) {
  323. $felt=add2felt($feltantal,'etage','addr1',$feltnavn,$felt);
  324. }
  325. if (in_array('fornavn',$feltnavn) && !in_array('firmanavn',$feltnavn)) {
  326. $feltantal++;
  327. $ryd_firmanavn=$feltantal;
  328. $feltnavn[$feltantal]='firmanavn';
  329. $felt[$feltantal]='';
  330. }
  331. if (in_array('efternavn',$feltnavn) && !in_array('firmanavn',$feltnavn)) {
  332. $feltantal++;
  333. $ryd_firmanavn=$feltantal;
  334. $feltnavn[$feltantal]='firmanavn';
  335. $felt[$feltantal]='';
  336. }
  337. if (in_array('fornavn',$feltnavn)) {
  338. $felt=add2felt($feltantal,'fornavn','firmanavn',$feltnavn,$felt);
  339. }
  340. if (in_array('efternavn',$feltnavn)) {
  341. $felt=add2felt($feltantal,'efternavn','firmanavn',$feltnavn,$felt);
  342. }
  343. for ($y=0; $y<=$feltantal; $y++) {
  344. # $felt[$y]=addslashes(trim($felt[$y]));
  345. $feltnavn[$y]=strtolower($feltnavn[$y]);
  346. if ((substr($felt[$y],0,1) == '"')&&(substr($felt[$y],-1) == '"')) $felt[$y]=substr($felt[$y],1,strlen($felt[$y])-2);
  347. if ($feltnavn[$y]=='kontonr'&&!is_numeric($felt[$y])) {
  348. $kontonr=0;
  349. $skriv_linje=2;
  350. } elseif ($feltnavn[$y]=='kontonr') $kontonr=$felt[$y];
  351. if ($feltnavn[$y]=='pbs_nr' && $felt[$y]) $felt[$pbs]='on';
  352. if ($feltnavn[$y]=="postnr") list($felt[$y],$bynavn[$y]) = explode(" ",$felt[$y],2);
  353. if ($feltnavn[$y]=='kontoansvarlig'&&$felt[$y]&&$kontonr){
  354. $r=db_fetch_array(db_select("select id from adresser where kontonr='$kontonr'",__FILE__ . " linje " . __LINE__));
  355. $konto_id=$r['id']*1;
  356. $r=db_fetch_array(db_select("select id from ansatte where initialer='$felt[$y]' and konto_id=$konto_id",__FILE__ . " linje " . __LINE__));
  357. $felt[$y]=$r['id']*1;
  358. } elseif ($feltnavn[$y]=='kontoansvarlig') $felt[$y]='0';
  359. if ($feltnavn[$y]=='oprettet'&&$felt[$y]&&$kontonr){
  360. $felt[$y]=usdate($felt[$y]);
  361. } elseif ($feltnavn[$y]=='oprettet') $felt[$y]=date("Y-m-d");
  362. if ($feltnavn[$y]=='kreditmax') $felt[$y]=usdecimal($felt[$y]);
  363. if ($feltnavn[$y]=='betalingsbet') {
  364. $tmp=strtolower($felt[$y]);
  365. if ($tmp=='lb.md.') $felt[$y]='Lb.Md.';
  366. elseif ($tmp=='forud') $felt[$y]='Forud';
  367. elseif ($tmp=='kontant') $felt[$y]='Kontant';
  368. elseif ($tmp=='efterkrav') $felt[$y]='Efterkrav';
  369. else $felt[$y]='Netto';
  370. }
  371. }
  372. }
  373. if ($skriv_linje==1){
  374. $addr_a='';
  375. $addr_b='';
  376. $upd='';
  377. $kontakt_a='';
  378. $kontakt_b='';
  379. for ($y=0; $y<=$feltantal; $y++) {
  380. if ($felt[$y] && $feltnavn[$y]=='status'&& (!in_array($felt[$y],$status_beskrivelse))) {
  381. $x=1;
  382. while(in_array($x,$status_id)) $x++; #finder laveste ledige vaerdi
  383. $status=$x;
  384. $status_id[$status_antal]=$x;
  385. $status_beskrivelse[$status_antal]=$felt[$y];
  386. $felt[$y]=$x;
  387. $status_antal++;
  388. $box3=NULL;$box4=NULL;
  389. for ($x=0;$x<$status_antal;$x++) {
  390. # if ($status_id[$x]==$rename_status) $status_beskrivelse[$x]=$ny_status;
  391. ($box3)?$box3.=chr(9).$status_id[$x]:$box3=$status_id[$x];
  392. ($box4)?$box4.=chr(9).$status_beskrivelse[$x]:$box4=$status_beskrivelse[$x];
  393. }
  394. db_modify("update grupper set box3='$box3',box4='$box4' where art = 'DebInfo'",__FILE__ . " linje " . __LINE__);
  395. } else {
  396. for ($x=0;$x<$status_antal;$x++) {
  397. if ($felt[$y]==$status_beskrivelse[$x]) {
  398. $felt[$y]=$status_id[$x];
  399. break 1;
  400. }
  401. }
  402. }
  403. if ($feltnavn[$y] && $feltnavn[$y]!='husnr' && $feltnavn[$y]!='etage' ) {
  404. $felt[$y]=trim(addslashes($felt[$y]));
  405. if ($feltnavn[$y]=='betalingsdage') $felt[$y]*=1;
  406. if (!strstr($feltnavn[$y],"kontakt_")) {
  407. if ($addr_a) {
  408. $addr_a=$addr_a.",";
  409. $addr_b=$addr_b.",";
  410. $upd=$upd.",";
  411. }
  412. $addr_a=$addr_a.$feltnavn[$y];
  413. $addr_b=$addr_b."'".$felt[$y]."'";
  414. $upd=$upd.$feltnavn[$y]."='".$felt[$y]."'";
  415. } else {
  416. if ($kontakt_a) {
  417. $kontakt_a=$kontakt_a.",";
  418. $kontakt_b=$kontakt_b.",";
  419. }
  420. $tmp=substr($feltnavn[$y],8);
  421. $kontakt_a=$kontakt_a.$tmp;
  422. $kontakt_b=$kontakt_b."'".$felt[$y]."'";
  423. }
  424. }
  425. }
  426. if (!strpos($addr_a,'lukket')) {
  427. $addr_a=$addr_a.",lukket";
  428. $addr_b=$addr_b.",''";
  429. }
  430. if (!strpos($addr_a,'gruppe')) {
  431. $addr_a=$addr_a.",gruppe";
  432. $addr_b=$addr_b.",'1'";
  433. $upd=$upd.",gruppe='1'";
  434. }
  435. # if (!strpos($addr_a,'art')) {
  436. # $addr_a=$addr_a.",art";
  437. # $addr_b=$addr_b.",'$art'";
  438. # $upd=$upd.",art='$art'";
  439. # } else {
  440. # for ($y=0; $y<=$feltantal; $y++) {
  441. # if ($feltnavn[$y]=='art') $art=$felt[$y];
  442. # }
  443. # }
  444. if ($r=db_fetch_array(db_select("select id from adresser where kontonr='$kontonr' and art='$art'",__FILE__ . " linje " . __LINE__))) {
  445. if ($opdat) {
  446. $konto_id=$r['id'];
  447. $imp_antal++;
  448. db_modify("update adresser set $upd where id='$konto_id'",__FILE__ . " linje " . __LINE__);
  449. # echo "kontonr=$kontonr opdateret<br>";
  450. } else {
  451. # echo "kontonr=$kontonr ikke opdateret<br>";
  452. $konto_id=0;
  453. }
  454. } else {
  455. $imp_antal++;
  456. db_modify("insert into adresser($addr_a,kontotype,art) values ($addr_b,'$kontotype','$art')",__FILE__ . " linje " . __LINE__);
  457. $r=db_fetch_array(db_select("select id from adresser where kontonr='$kontonr' and art = '$art'",__FILE__ . " linje " . __LINE__));
  458. $konto_id=$r['id'];
  459. }
  460. if ($kontakt_a && !$r=db_fetch_array(db_select("select id from ansatte where konto_id='$konto_id'",__FILE__ . " linje " . __LINE__))){
  461. db_modify("insert into ansatte($kontakt_a,konto_id) values ($kontakt_b,'$konto_id')",__FILE__ . " linje " . __LINE__);
  462. }
  463. }
  464. }
  465. }
  466. fclose($fp);
  467. transaktion('commit');
  468. print "</tbody></table>";
  469. print "</td></tr>";
  470. print "<BODY onLoad=\"javascript:alert('$imp_antal adresser importeret')\">";
  471. if ($popup) print "<meta http-equiv=\"refresh\" content=\"0;URL=../includes/luk.php\">";
  472. else print "<meta http-equiv=\"refresh\" content=\"0;URL=../systemdata/diverse.php\">";
  473. #exit;
  474. } # endfunc overfoer_data
  475. function nummertjek ($nummer){
  476. $nummer=trim($nummer);
  477. $retur=1;
  478. $nummerliste=array("1", "2", "3", "4", "5", "6", "7", "8", "9", "0", ",", ".", "-");
  479. for ($x=0; $x<strlen($nummer); $x++) {
  480. if (!in_array($nummer{$x}, $nummerliste)) $retur=0;
  481. }
  482. if ($retur) {
  483. for ($x=0; $x<strlen($nummer); $x++) {
  484. if ($nummer{$x}==',') $komma++;
  485. elseif ($nummer{$x}=='.') $punktum++;
  486. }
  487. if ((!$komma)&&(!$punktum)) $retur='US';
  488. elseif (($komma==1)&&(substr($nummer,-3,1)==',')) $retur='DK';
  489. elseif (($punktum==1)&&(substr($nummer,-3,1)=='.')) $retur='US';
  490. elseif (($komma==1)&&(!$punktum)) $retur='DK';
  491. elseif (($punktum==1)&&(!$komma)) $retur='US';
  492. }
  493. return $retur=chr(32);
  494. }
  495. function opdel ($splitter,$linje){
  496. global $feltantal;
  497. $anftegn=0;
  498. $x=0;
  499. $y=0;
  500. if (substr($linje,0,1)==$splitter) {
  501. $linje=" ".$linje;
  502. }
  503. $anftegn=0;
  504. $ny_linje="";
  505. for($z=$x;$z<=strlen($linje);$z++) {
  506. $tegn=substr($linje,$z,1);
  507. if (!$anftegn && $tegn==chr(34)) $anftegn=1;
  508. elseif ($tegn==chr(34)) $anftegn=0;
  509. if (!$anftegn && $tegn==$splitter) $tegn=chr(9);
  510. $ny_linje.=$tegn;
  511. }
  512. $var=explode(chr(9),$ny_linje);
  513. for($i=0;$i<$feltantal;$i++) {
  514. #echo "$var[$i] - ";
  515. $var[$i]=trim($var[$i]);
  516. #cho substr($var[$i],0,1);
  517. #echo " - ";
  518. #echo substr($var[$i],-1);
  519. if (substr($var[$i],0,1)==chr(34) && substr($var[$i],-1)==chr(34)) {
  520. $var[$i]=substr($var[$i],1,strlen($var[$i])-2);
  521. }
  522. #echo " - $var[$i]<br>";
  523. }
  524. return $var;
  525. }
  526. function opdel2 ($splitter,$linje){
  527. global $feltantal;
  528. $anftegn=0;
  529. $x=0;
  530. $y=0;
  531. $linje=trim($linje);
  532. if (substr($linje,0,1)==chr(34)) {
  533. $anftegn=1;
  534. $x++;
  535. }
  536. for($z=$x;$z<=strlen($linje);$z++) {
  537. if (!$anftegn && substr($linje,$z-1,1)==$splitter && substr($linje,$z,1)==chr(34)) {
  538. $anftegn=1;
  539. $z++;
  540. }
  541. if ($anftegn && substr($linje,$z,1)==chr(34) && substr($linje,$z+1,1)==$splitter) {
  542. $y++;
  543. $z++;
  544. $anftegn=0;
  545. } elseif ($anftegn && substr($linje,$z,1)==chr(34) && $z>=strlen($linje)-1) {
  546. $z++;
  547. $anftegn=0;
  548. } elseif (!$anftegn && substr($linje,$z,1)==$splitter) {
  549. $y++;
  550. } else {
  551. $var[$y]=$var[$y].substr($linje,$z,1);
  552. }
  553. }
  554. return $var;
  555. }
  556. function add2felt($feltantal,$tmpnavn1,$tmpnavn2,$feltnavn,$felt){
  557. # global $feltantal;
  558. $tmp=NULL;
  559. for ($y=0; $y<=$feltantal; $y++) {
  560. if ($feltnavn[$y]==$tmpnavn1){
  561. $tmp=" ".$felt[$y];
  562. }
  563. if ($feltnavn[$y]==$tmpnavn2) $feltnr=$y;
  564. }
  565. $felt[$feltnr]=$felt[$feltnr].$tmp;
  566. return ($felt);
  567. }