# ---- Logindaten und URL anpassen: ----
login=MyLxOfficeUserName
password=MySecretPassword
-url='https://localhost/lx-office-erp/controller.pl'
+client_id=ClientDatabaseID
+url='https://localhost/kivitendo-erp/controller.pl'
function fail {
echo "$@"
exit 1
}
-test -z $1 && fail "Kein CSV-Dateiname angegeben."
-test -f $1 || fail "Datei '$1' nicht gefunden."
+test -z "$1" && fail "Kein CSV-Dateiname angegeben."
+test -f "$1" || fail "Datei '$1' nicht gefunden."
file="$1"
function do_curl {
# "UTF-8".
# "settings.duplicates": Doublettencheck; "no_check", "check_csv",
- # "check_db"
+ # "check_db". Falls angestellt wird, werden weitere Einstellungen
+ # "settings.duplicates_....=1" benötigt, die vom Programm logisch
+ # mit "und" verknüpft werden. Diese Einstellungen sind für jeden
+ # Typ weiter unten beschrieben.
# Parameter für Artikel:
# "settings.apply_buchungsgruppe": Buchungsgruppe wo anwenden:
# "never", "all", "missing"
- # "settings.parts_type": Artikeltyp: "part", "service", "mixed"
+ # "settings.part_type": Artikeltyp: "part", "service", "mixed"
# "settings.article_number_policy": Artikel mit existierender
# Artikelnummer: "update_prices", "insert_new"
# "settings.shoparticle_if_missing": Shopartikel setzen falls
# fehlt: "1", "0"
+ # "settings.duplicates_partnumber=1": Doublettencheck nach
+ # Artikelnummer (nur, wenn "settings.duplicates" auch gesetzt
+ # ist).
+
+ # "settings.duplicates_description=1": Doublettencheck nach
+ # Artikelnummer (nur, wenn "settings.duplicates" auch gesetzt
+ # ist).
+
# Parameter für Kunden/Lieferanten:
# "settings.table": Zieltabelle: "customer", "vendor"
- # Parameter für Ansprechpartner:
- # Nur die Standard-Parameter von oben
+ # "settings.duplicates_name=1": Doublettencheck nach
+ # Kunden-/Lieferantennamen (nur, wenn "settings.duplicates" auch
+ # gesetzt ist).
+
+ # Parameter für Ansprechperson:
+
+ # "settings.duplicates_cp_name=1": Doublettencheck nach Namen der
+ # Ansprechperson (nur, wenn "settings.duplicates" auch gesetzt
+ # ist).
# Parameter für Lieferanschriten:
# Nur die Standard-Parameter von oben
+ # Parameter für Projekte:
+
+ # "settings.duplicates_projectnumber=1": Doublettencheck nach
+ # Projektnummer (nur, wenn "settings.duplicates" auch gesetzt
+ # ist).
+
+ # Spaltenzuordnungen für Benutzerdefinierte Variablen:
+ # Beispiel (Achtung, die Reihenfolge ist wichtig):
+
+ # "mappings[+].from=vm_product_length"
+ # "mappings[].to=cvar_vm_product_length"
+ # "mappings[+].from=vm_product_width"
+ # "mappings[].to=cvar_vm_product_width"
+ # "mappings[+].from=vm_product_height"
+ # "mappings[].to=cvar_vm_product_height"
+
curl \
+ -X 'POST' \
+ -H 'Content-Type:multipart/form-data' \
--silent --insecure \
-F 'action=CsvImport/dispatch' \
-F "${action}=1" \
-F 'settings.default_buchungsgruppe=395' \
-F 'settings.duplicates=no_check' \
-F 'settings.numberformat=1.000,00' \
- -F 'settings.parts_type=part' \
+ -F 'settings.part_type=part' \
-F 'settings.sellprice_adjustment=0' \
-F 'settings.sellprice_adjustment_type=percent' \
-F 'settings.sellprice_places=2' \
-F 'settings.shoparticle_if_missing=0' \
-F "{AUTH}login=${login}" \
-F "{AUTH}password=${password}" \
+ -F "{AUTH}client_id=${client_id}" \
-F "file=@${file}" \
${url}
}
tmpf=$(mktemp)
do_curl 'action_test' > $tmpf
-if grep -q -i 'es wurden.*objekte gefunden, von denen.*' $tmpf; then
+if grep -q -i 'Ihr Import wird verarbeitet' $tmpf; then
rm $tmpf
do_curl 'action_import' > $tmpf
- if grep -i 'von.*objekten wurden importiert' $tmpf ; then
+ if grep -i 'Ihr Import wird verarbeitet' $tmpf ; then
rm $tmpf
else
echo "Import schlug fehl. Ausgabe befindet sich in ${tmpf}"