Willkommen im kivitendo Forum! Hier erweitern und teilen AnwenderInnen und EntwicklerInnen ihr Wissen.

Teste kivitendo!

kivitendo Demo

kivitendo Demo mit Schweizer Kontenplan

Geld allein macht nicht glücklich - benutzt kivitendo!

0 Punkte

Hallo zusammen,

welche ERP Version läuft mit der CRM 2.2.1 und mit welcher Ubuntu Version einwandfrei ?
Gibt es eine Doku für die Erstinitalisierung der CRM und ERP ?
Bis jetzt habe ich verschiedene Varianten ausprobiert und bin jedesmal entweder an einer falschen DB-Struktur oder Fehlermeldungen des PHP Prozesses hängen geblieben.
Varianten jeweils mit CRM 2.2.1:
ERP 3.5.2 / Ubuntu 14.04 oder 16.04
ERP 3.5.1 / Ubuntu 14.04 oder 16.04
ERP 3.4.1 / Ubuntu 14.04 oder 16.04

Zuletzt habe ich die 1.Variante bis zu einem PDOException anpassen können.
Hier meine Schritte und Anpassungen:
System->Mandantenkonfiguration
System->Preisgruppe
System->Zahlungsbedingungen
Stammdaten -> Kunden erfassen
CRM->Admin->Mandant
CRM->Admin->Benutzer
CRM->Admin->Status
CRM->Admin->Kalender-Kategorie
CRM->Kundenauswahl->Zeiten erfassen->Rechnungstellung

SQL-Error mit uknown column bei SELECT id,income_accno_id_4 AS chartid FROM buchungsgruppen

crmLib.php in der Funktion getTax folgendes angepasst:

/* SQL Abfrage angepasst 10.06.2018 */
/* $sql = "SELECT id,income_accno_id_$tzid AS chartid FROM buchungsgruppen";*/
$sql = "SELECT id,income_accno_id AS chartid FROM taxzone_charts WHERE taxzone_id=".$tzid;

Danach kommt nur noch ein 'PDOException', nachdem die Liste der Zeiten Abgefragt wird.

==> /var/log/apache2/error.log <==
[Mon Jun 11 13:16:31.683204 2018] [:error] [pid 13854] [client 192.168.9.109:52974] PHP Notice: Undefined offset: 859 in /var/www/kivitendo-crm/inc/crmLib.php on line 3148, referer: http://192.168.9.144/kivitendo/crm/timetrack.php

==> /var/www/kivitendo-crm/tmp/sqlerror.log <==
2018-06-11 13:16:31 -> getOne: SELECT name,id FROM currencies WHERE id = (SELECT currency_id FROM defaults)

==> /var/log/apache2/error.log <==
[Mon Jun 11 13:16:31.684952 2018] [:error] [pid 13854] [client 192.168.9.109:52974] PHP Notice: Undefined index: clearonly in /var/www/kivitendo-crm/inc/crmLib.php on line 2983, referer: http://192.168.9.144/kivitendo/crm/timetrack.php

==> /var/www/kivitendo-crm/tmp/sqlerror.log <==
2018-06-11 13:16:31 -> getAll: SELECT t.*,COALESCE(e.name,e.login) AS user,oe.ordnumber,oe.closed FROM tt_event t LEFT JOIN employee e ON e.id=t.uid LEFT JOIN oe ON t.cleared=oe.id WHERE ttid = 1 AND (cleared < 1 OR cleared IS NUll) and t.id in (1) ORDER BY t.ttstart
2018-06-11 13:16:31 -> PDO::beginTransaction() returns: 1

==> /var/log/apache2/error.log <==
[Mon Jun 11 13:16:31.690298 2018] [:error] [pid 13854] [client 192.168.9.109:52974] PHP Fatal error: Uncaught exception 'PDOException' with message 'There is already an active transaction' in /var/www/kivitendo-crm/inc/phpDataObjects.php:122\nStack trace:\n#0 /var/www/kivitendo-crm/inc/phpDataObjects.php(122): PDO->beginTransaction()\n#1 /var/www/kivitendo-crm/inc/stdLib.php(775): myPDO->begin()\n#2 /var/www/kivitendo-crm/inc/crmLib.php(3165): nextNumber('sonumber')\n#3 /var/www/kivitendo-crm/timetrack.php(81): mkTTorder('1', 'and t.id in (1)...', NULL)\n#4 {main}\n thrown in /var/www/kivitendo-crm/inc/phpDataObjects.php on line 122, referer: http://192.168.9.144/kivitendo/crm/timetrack.php

==> /var/log/apache2/other_vhosts_access.log <==
PNT-KIvitendo01:80 192.168.9.109 - - [11/Jun/2018:13:16:31 +0200] "POST /kivitendo/crm/timetrack.php HTTP/1.1" 500 358 "http://192.168.9.144/kivitendo/crm/timetrack.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0"
Danke und Gruß
Nick

geschlossen mit Kommentar: ist ein toter Fork
Gefragt von (330 Punkte)
geschlossen von

1 Antwort

0 Punkte

Hey,
benutze die neuste Git-Version der CRM mit der letzten Stable-Version der ERP.

Unter CRM -> Status DB-Update durchführen, dann sollte alles laufen.

Falls nicht so melde dich.

Viele Grüße

Ronny

Beantwortet von (7.8k Punkte)

Hallo Ronny,

danke für die Antwort, jedoch habe ich das schon getan. Das Problem lieht ja nicht nur an der DB, sondern auch an den Quellcode. Wie ich schon beschrieben hatte, muss ich den Code ebenfalls anpassen.
Also ich will die Zeiten die ich in der CRM hinterlege mit dem Button "abrechnen" abrechnen. Und daran scheitert es mit den von mir schon erwähnten Versionen (alle aus dem GIT).
Es muss doch mal eine Versionskombination gegeben haben, in der das abrechnen funktioniert hatte?
Dem PDO Exception bin ich auch schon auf die Spur gekommen. Dieser wird durch eine Begin-Anweisung verursacht, die nicht mittels einem commit geschlossen wurde (crmLib.php -> funktion mkTTorder).
Nun stecke ich mit der letzten fehlerhaften SQL-Anweisung fest. in phpDataObjects.php in der Funktion insert.
Folgender Aufruf
$stmt = parent::prepare( "select * from currval('".( ( $sequence_name ) ? $sequencename : ( $table."".$lastInsertId."_seq" ) )."')" );
verursacht einen SQL Error mit Objekt existiert nicht.
Die Daten für die Rechnungserstellung sind in der ERP DB vorhanden.
Zu deiner Anmerkung, ein DB Update allein reicht nicht aus.
Also welche CRM Version lief mit welcher ERP Version fehlerfrei und wurde auch von euch getestet ?

Oder könnt ihr diesen Fehler beheben. Genau diese Funktion wäre für uns am wichtigsten.

Gruß
Nick

Also ich will die Zeiten die ich in der CRM hinterlege mit dem Button "abrechnen" abrechnen.

Benutzen wir nicht.

Wie heißen die Scripte??

BildschirmVideo??

Erstmal hier die Version:
Version
Dieses Feature ist bei der Zeiterfassung dabei.
Menupunkt
Sobald die ersten Zeiten hinterlegt wurden kann man diese über die ERP abrechnen.
Button abrechnen
Sobald man diesen betätigt, beginnt das Dilemma.
Folgnde Anpassungen habe ich vorgenommen:
inc/crmLib.php
function getTax($tzid) {
- $sql = "SELECT id,income_accnoid$tzid AS chartid FROM buchungsgruppen";
+ $sql = "SELECT buchungsgruppen_id,income_accno_id AS chartid FROM taxzone_charts WHERE taxzone_id=".$tzid;
- $tax[$row['id']] = $rsc['tax'];
+ $tax[$row['buchungsgruppen_id']] = $rsc['tax'];

function mkTTorder
- $GLOBALS['dbh']->begin();
- $sql = "INSERT INTO oe (notes,transaction_description,ordnumber,".$vendcust."_id,taxincluded,currency_id) ";
+ $sql = "INSERT INTO oe (notes,transaction_description,ordnumber,".$vendcust."_id,taxincluded,currency_id,taxzone_id) ";
- $sql .= "coalesce((SELECT currency_id FROM ".$vendcust." WHERE id = ".$tt['fid']."),$curr));
+ $sql .= "coalesce((SELECT currency_id FROM ".$vendcust." WHERE id = ".$tt['fid']."),$curr),".$tzid.")";

Und nun stecke ich in der public function insert in inc/phpDataObjects.php fest.
SQL Error:
(

[0] => 42P01
[1] => 7
[2] => ERROR:  relation "orderitems_id_seq" does not exist

LINE 1: select * from currval('orderitems_id_seq')

                          ^

)
Dieses Feature wird in der Hilfe unter TimeTrack.html beschrieben.
Hoffe die Infos helfen weiter. Und kannst Du mir da weiter helfen?
Gruß
Nick

Hallo Ronny,

gibt es irgendwelche Informationen ?

Gruß
Nick

Ähnliche Fragen

0 Punkte
2 Antworten
Gefragt 25, Okt 2013 von rt81 (380 Punkte)
0 Punkte
1 Antwort
Gefragt 1, Sep 2014 von manufly (40 Punkte)
0 Punkte
2 Antworten
0 Punkte
3 Antworten
Gefragt 22, Apr 2014 von scotty (100 Punkte)
0 Punkte
4 Antworten
Gefragt 26, Jan 2013 von Christian Death (120 Punkte)
...