Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision fc47e483

Von Holger Lindemann vor etwa 15 Jahren hinzugefügt

  • ID fc47e4830133fb0841ae91a63f909ea7ce6d72fe
  • Vorgänger c510d88b
  • Nachfolger 57bf9c89

Code überarbeitet

Beispielimportdateien zugefügt

Unterschiede anzeigen:

lxo-import/partsB.php
9 9
*/
10 10

  
11 11

  
12
function ende($nr) {
13
	echo "Abbruch: $nr<br>";
14
	echo "Fehlende oder falsche Daten.";
15
	exit(1);
12
function ende($txt) {
13
    echo "Abbruch: $txt<br>";
14
    exit(1);
16 15
}
17 16

  
18 17
if (!$_SESSION["db"]) {
19
	$conffile="../config/authentication.pl";
20
	if (!is_file($conffile)) {
21
		ende(4);
22
	}
18
    $conffile="../config/authentication.pl";
19
    if (!is_file($conffile)) {
20
        ende("authentication.pl nicht gefunden oder kein Leserecht.");
21
    }
23 22
}
24 23
require ("import_lib.php");
25 24

  
26
if (!anmelden()) ende(5);
25
if (!anmelden()) ende("Anmeldung fehlgeschlagen.");
27 26

  
28 27
/* get DB instance */
29 28
$db=$_SESSION["db"]; //new myDB($login);
......
32 31
/* just display page or do real import? */
33 32
if ($_POST["ok"]) {
34 33

  
35
require ("parts_import.php");
36

  
37
/* display help */
38
if ($_POST["ok"]=="Hilfe") {
39
	echo "Importfelder:<br>";
40
	echo "Feldname => Bedeutung<br>";
41
	foreach($parts as $key=>$val) {
42
		echo "$key => $val<br>";
43
	}
44
	echo "<br>Die erste Zeile enth&auml;lt die Feldnamen der Daten in ihrer richtigen Reihenfolge<br>";
45
	echo "Geben Sie das Trennzeichen der Datenspalten ein. Steuerzeichen k&ouml;nnen mit ihrem Dezimalwert gef&uuml;hrt von einem &quot;#&quot; eingegebn werden (#11).<br><br>"; 
46
	echo "Der &quot;sellprice&quot; kann um den eingegeben Wert  ge&auml;ndert werden.<br><br>";
47
	echo "Bei vorhandenen Artikelnummern (in der db), kann entweder ein Update auf den Preis (und Text) durchgef&uuml;hrt werden oder der Artikel mit anderer Artikelnummer eingef&uuml;gt werden.<br><br>";
48
	echo "Jeder Artikel mu&szlig; einer Buchungsgruppe zugeordnet werden. ";
49
	echo "Dazu mu&szlig; entweder in der Maske eine Standardbuchungsgruppe gew&auml;hlt werden <br>";
50
	echo "oder es wird ein g&uuml;ltiges Konto in 'income_accno_id' und 'expense_accno_id' eingegeben. ";
51
	echo "Das Programm versucht dann eine passende Buchungsgruppe zu finden.";
52
	exit(0);
53
};
54

  
55
clearstatcache ();
56

  
57
$test    = $_POST["test"];
58
$lager    = $_POST["lager"];
59
$TextUpd = $_POST["TextUpd"];
60
$trenner = ($_POST["trenner"])?$_POST["trenner"]:",";
61
$trennzeichen = ($_POST["trennzeichen"])?$_POST["trennzeichen"]:"";
62
$precision = $_POST["precision"];
63
$quotation = $_POST["quotation"];
64
$quottype = $_POST["quottype"];
65
$file    = "parts";
66

  
67
/* no data? */
68
if (empty($_FILES["Datei"]["name"]))
69
	ende (2);
70

  
71
/* copy file */
72
if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$file.".csv")) {
73
	echo "Upload von Datei fehlerhaft.";
74
	echo $_FILES["Datei"]["error"], "<br>";
75
	ende (2);
76
} 
77

  
78
/* ??? */
79
//if (!chkUsr($login))
80
//	ende(4);
81

  
82
/* ??? */
83
//if (!file_exists("../users/$login.conf")) 
84
//	ende(3);
85

  
86
/* check if file is really there */
87
if (!file_exists("$file.csv")) 
88
	ende(3);
89

  
90
/* ??? */
91
if (!$db->chkcol($file)) 
92
	ende(6);
93

  
94

  
95
/* first check all elements */
96
echo "Checking data:<br>";
97
$_test=$_POST;
98
$_test["precision"]=-1;
99
$_test["quotation"]=0;
100
$_test["lager"]=$_POST["lager"];
101
$_test["lagerplatz"]=$_POST["lagerplatz"];
102
//$_test["shop"]="n";
103
//$_test["wgtrenner"]="!";
104
$err = import_parts($db, $file, $trenner, $trennzeichen, $parts, TRUE, FALSE, FALSE,$_test);
105
echo "$err Errors found\n";
106

  
107

  
108
if ($err!=0)
109
	exit(0);
110

  
111
/* just print data or insert it, if test is false */
112
import_parts($db, $file, $trenner, $trennzeichen, $parts, FALSE, !$test, TRUE,$_POST);
34
    require ("parts_import.php");
35

  
36
    /* display help */
37
    if ($_POST["ok"]=="Hilfe") {
38
        echo "Importfelder:<br>";
39
        echo "Feldname => Bedeutung<br>";
40
        foreach($parts as $key=>$val) {
41
            echo "$key => $val<br>";
42
        }
43
        $header=implode(";",array_keys($parts));
44
        echo $header;
45
        echo "<br><br>Die erste Zeile enth&auml;lt die Feldnamen der Daten in ihrer richtigen Reihenfolge<br>";
46
        echo "Geben Sie das Trennzeichen der Datenspalten ein. Steuerzeichen k&ouml;nnen mit ihrem Dezimalwert ";
47
        echo "gef&uuml;hrt von einem &quot;#&quot; eingegebn werden (#11).<br><br>"; 
48
        echo "Wird bei &quot;Art&quot; in der Maske &quot;gemischt&quot; gew&auml;hlt, muss die Spalte &quot;art&quot; vor der Einheit stehen.<br><br>";
49
        echo "Der &quot;sellprice&quot; kann um den eingegeben Wert  ge&auml;ndert werden.<br><br>";
50
        echo "Bei vorhandenen Artikelnummern (in der db), kann entweder ein Update auf den Preis (und Text) durchgef&uuml;hrt werden oder ";
51
        echo "der Artikel mit anderer Artikelnummer eingef&uuml;gt werden.<br><br>";
52
        echo "Jeder Artikel mu&szlig; einer Buchungsgruppe zugeordnet werden. ";
53
        echo "Dazu mu&szlig; entweder in der Maske eine Standardbuchungsgruppe gew&auml;hlt werden <br>";
54
        echo "oder es wird ein g&uuml;ltiges Konto in 'income_accno_id' und 'expense_accno_id' eingegeben. ";
55
        echo "Das Programm versucht dann eine passende Buchungsgruppe zu finden.";
56
        exit(0);
57
    };
58

  
59
    clearstatcache ();
60

  
61
    $test    = $_POST["test"];
62
    $lager    = $_POST["lager"];
63
    $TextUpd = $_POST["TextUpd"];
64
    $trenner = ($_POST["trenner"])?$_POST["trenner"]:",";
65
    $trennzeichen = ($_POST["trennzeichen"])?$_POST["trennzeichen"]:"";
66
    $precision = $_POST["precision"];
67
    $quotation = $_POST["quotation"];
68
    $quottype = $_POST["quottype"];
69
    $file    = "parts";
70

  
71
    /* no data? */
72
    if (empty($_FILES["Datei"]["name"]))
73
        ende ("Kein Datenfile angegeben");
74

  
75
    /* copy file */
76
    if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$file.".csv")) {
77
        ende ("Upload von Datei fehlerhaft.".$_FILES["Datei"]["error"]);
78
    } 
79

  
80
    /* check if file is really there */
81
    if (!file_exists("$file.csv") or filesize("$file.csv")==0) 
82
        ende("Datenfile ($file.csv) nicht im Ordner gefunden oder leer");
83

  
84
    /* Zu diesem Zeitpunkt wurde der Artikel Importiert */
85
    if (!$db->chkcol($file)) 
86
        ende("Importspalte konnte nicht angelegt werden");
87

  
88
    /* first check all elements */
89
    $_test=$_POST;
90
    $_test["precision"]=-1;
91
    $_test["quotation"]=0;
92
    $_test["lager"]=$_POST["lager"];
93
    $_test["lagerplatz"]=$_POST["lagerplatz"];
94

  
95
    /* just print data or insert it, if test is false */
96
    import_parts($db, $file, $trenner, $trennzeichen, $parts, FALSE, !$test, $_POST["show"],$_POST);
113 97

  
114 98
} else {
115
	$bugrus=getAllBG($db);
116
	$lagerplatz=getLager($db);
99
    $bugrus=getAllBG($db);
117 100
?>
118 101

  
119 102
<p class="listtop">Artikelimport f&uuml;r die ERP<p>
......
124 107
<table>
125 108
<tr><td><input type="submit" name="ok" value="Hilfe"></td><td></td></tr>
126 109
<tr><td>Trennzeichen</td><td>
127
		<input type="radio" name="trenner" value=";" checked>Semikolon 
128
		<input type="radio" name="trenner" value=",">Komma 
129
		<input type="radio" name="trenner" value="#9" checked>Tabulator
130
		<input type="radio" name="trenner" value=" ">Leerzeichen
131
		<input type="radio" name="trenner" value="other"> 
132
		<input type="text" size="2" name="trennzeichen" value=""> 
110
        <input type="radio" name="trenner" value=";" checked>Semikolon 
111
        <input type="radio" name="trenner" value=",">Komma 
112
        <input type="radio" name="trenner" value="#9" checked>Tabulator
113
        <input type="radio" name="trenner" value=" ">Leerzeichen
114
        <input type="radio" name="trenner" value="other"> 
115
        <input type="text" size="2" name="trennzeichen" value=""> 
133 116
</td></tr>
134 117
<tr><td>VK-Preis<br>Nachkomma:</td><td><input type="Radio" name="precision" value="0">0  
135
			<input type="Radio" name="precision" value="1">1 
136
			<input type="Radio" name="precision" value="2" checked>2 
137
			<input type="Radio" name="precision" value="3">3 
138
			<input type="Radio" name="precision" value="4">4 
139
			<input type="Radio" name="precision" value="5">5 
140
	</td></tr>
118
            <input type="Radio" name="precision" value="1">1 
119
            <input type="Radio" name="precision" value="2" checked>2 
120
            <input type="Radio" name="precision" value="3">3 
121
            <input type="Radio" name="precision" value="4">4 
122
            <input type="Radio" name="precision" value="5">5 
123
    </td></tr>
141 124
<tr><td>VK-Preis<br>Aufschlag:</td><td><input type="text" name="quotation" size="5" value="0"> 
142
			<input type="radio" name="quottype" value="P" checked>% 
143
			<input type="radio" name="quottype" value="A">Absolut</td></tr>
125
            <input type="radio" name="quottype" value="P" checked>% 
126
            <input type="radio" name="quottype" value="A">Absolut</td></tr>
144 127
<tr><td>Vorhandene<br>Artikelnummer:</td><td><input type="radio" name="update" value="U" checked>Preis update durchf&uuml;hren<br>
145
					<input type="radio" name="update" value="I">mit neuer Nummer einf&uuml;gen</td></tr>
128
                    <input type="radio" name="update" value="I">mit neuer Nummer einf&uuml;gen</td></tr>
129
<tr><td>Kontollausgabe</td><td><input type="checkbox" name="show" value="1" checked>ja</td></tr>
146 130
<tr><td>Test</td><td><input type="checkbox" name="test" value="1">ja</td></tr>
147 131
<tr><td>Textupdate</td><td><input type="checkbox" name="TextUpd" value="1">ja</td></tr>
148 132
<tr><td>Warengruppen<br>verbinder</td><td><input type="text" name="wgtrenner" value="!" size="3"></td></tr>
149
<tr><td>Shopartikel</td><td><input type="radio" name="shop" value="t">ja <input type="radio" name="shop" value="n" checked>nein</td></tr>
133
<tr><td>Shopartikel</td><td><input type="radio" name="shop" value="t">ja <input type="radio" name="shop" value="f" checked>nein</td></tr>
150 134
<tr><td>Art</td><td><input type="Radio" name="ware" value="W" checked>Ware &nbsp; 
151
		    <input type="Radio" name="ware" value="D">Dienstleistung
152
		    <input type="Radio" name="ware" value="G">gemischt (Spalte 'art' vorhanden)</td></tr>
135
            <input type="Radio" name="ware" value="D">Dienstleistung
136
            <input type="Radio" name="ware" value="G">gemischt (Spalte 'art' vorhanden)</td></tr>
153 137
<tr><td>Default Bugru<br></td><td><select name="bugru">
154
<?	if ($bugrus) foreach ($bugrus as $bg) { ?>
155
			<option value="<?= $bg["id"] ?>"><?= $bg["description"] ?>
156
<?	} ?>
157
	</select>
158
	<input type="radio" name="bugrufix" value="0">nie<br>
159
	<input type="radio" name="bugrufix" value="1" checked>f&uuml;r alle Artikel verwenden
160
	<input type="radio" name="bugrufix" value="2">f&uuml;r Artikel ohne passende Bugru
161
	</td></tr>
162
<tr><td>Default Lager<br></td><td><select name="lager">
163
<?	if ($lagerplatz) foreach ($lagerplatz as $lp) { ?>
164
			<option value="<?= $lp["id"] ?>"><?= $lp["ort"] ?>-<?= $lp["platz"] ?>
165
<?	} ?>
166
	</select>
167
	<input type="radio" name="lagerfix" value="1" checked>f&uuml;r alle Artikel verwenden
168
	<input type="radio" name="lagerfix" value="2">f&uuml;r Artikel ohne passendes Lager
169
	</td></tr>
138
<?    if ($bugrus) foreach ($bugrus as $bg) { ?>
139
            <option value="<?= $bg["id"] ?>"><?= $bg["description"]."\n" ?>
140
<?    } ?>
141
    </select>
142
    <input type="radio" name="bugrufix" value="0">nie<br>
143
    <input type="radio" name="bugrufix" value="1" checked>f&uuml;r alle Artikel verwenden
144
    <input type="radio" name="bugrufix" value="2">f&uuml;r Artikel ohne passende Bugru
145
    </td></tr>
170 146
<tr><td>Daten</td><td><input type="file" name="Datei"></td></tr>
171 147
<tr><td></td><td><input type="submit" name="ok" value="Import"></td></tr>
172 148
</table>

Auch abrufbar als: Unified diff