diff --git a/system/sync/stp/sync_stp_vilesci_prestudent.php b/system/sync/stp/sync_stp_vilesci_prestudent.php index 22bf4886e..10367b372 100644 --- a/system/sync/stp/sync_stp_vilesci_prestudent.php +++ b/system/sync/stp/sync_stp_vilesci_prestudent.php @@ -374,6 +374,7 @@ if($result = pg_query($conn, $qry)) if($row_seq=pg_fetch_object(pg_query($conn,$qry_seq))) { $prestudent_id=$row_seq->id; + pg_query($conn, "COMMIT"); } else { @@ -387,93 +388,9 @@ if($result = pg_query($conn, $qry)) $ausgabe.="\n------------------\nGeändert: ".$row->__person." - ".trim($row->chtitel)." ".trim($row->chnachname).", ".trim($row->chvorname).", Stg: ".$row->studiengang_kz."\n---".$qry_ins."\n---".$log_qry_ins; $prestudent_id=$row_chk->prestudent_id; $update++; + pg_query($conn, "COMMIT"); } $iu=''; - - if(!$error) - { - if($row->instudiensemester>$maxsemester[$row->studiengang_kz]) - { - $row->instudiensemester=$maxsemester[$row->studiengang_kz]; - } - $qry_ins=''; - $qry_status="SELECT * FROM public.tbl_prestudentrolle WHERE prestudent_id='".$prestudent_id."' AND rolle_kurzbz='".$rolle."' AND studiensemester_kurzbz='".$Kalender."' AND ausbildungssemester='".$row->instudiensemester."';"; - $result_status=pg_query($conn,$qry_status); - if(pg_num_rows($result_status)==0) - { - $iu='i'; - $qry_ins="INSERT INTO public.tbl_prestudentrolle (prestudent_id, rolle_kurzbz, - studiensemester_kurzbz, ausbildungssemester,datum, orgform_kurzbz, - insertamum, insertvon, updateamum, updatevon, ext_id) - VALUES (". - myaddslashes($prestudent_id).", ". - myaddslashes($rolle).", ". - myaddslashes($Kalender).", "; - //max.studiendauer wenn ausbildungssemester größer (v.a. für 50er und 60er) - if($row->instudiensemester>$maxsemester[$row->studiengang_kz]) - { - $qry_ins.=myaddslashes($maxsemester[$row->studiengang_kz]); - } - else - { - $qry_ins.=myaddslashes($row->instudiensemester); - } - $qry_ins.=", ".myaddslashes($semstart[$Kalender]).", ". - myaddslashes($orgform).", - now(), - 'SYNC', - NULL, - NULL, ". - myaddslashes($row->__person).")"; - } - else - { - $iu='u'; - if($row_status=pg_fetch_object($result_status)) - { - $qry_ins=''; - if ($row_status->orgform_kurzbz!=$orgform) - $qry_ins.="orgform_kurzbz=".myaddslashes($orgform).", "; - - if($row->instudiensemester>$maxsemester[$row->studiengang_kz]) - $row->instudiensemester=$maxsemester[$row->studiengang_kz]; - if ($row_status->ausbildungssemester!=$row->instudiensemester) - $qry_ins.="ausbildungssemester=".myaddslashes($row->instudiensemester).", "; - if($row_status->datum!=($semstart[$Kalender])) - { - $qry_ins.="datum=".myaddslashes($semstart[$Kalender]).", "; - } - if($qry_ins!='') - { - $qry_ins="UPDATE public.tbl_prestudentrolle SET ".$qry_ins."updateamum=now(), updatevon='SYNC' - WHERE prestudent_id='".$prestudent_id."' AND rolle_kurzbz='".$rolle."' AND studiensemester_kurzbz='".$Kalender."';"; - } - } - } - if($qry_ins!='') - { - if(!$result_neu = pg_query($conn, $qry_ins)) - { - $error_log.= $qry_ins."\n".pg_last_error($conn)." \n"; - $fehler1++; - pg_query($conn, "ROLLBACK"); - } - else - { - pg_query($conn, "COMMIT"); - if($iu=='i') - { - $ausgabe.="\n---Rolle eingefügt: ".$rolle." im Studiensemester ".$Kalender." und Ausbildungssemeser ".$row->instudiensemester." (OrgForm ".$orgform.");"; - $eingefuegt1++; - } - elseif($iu=='u') - { - $ausgabe.="\n---Rolle geändert: ".$rolle." im Studiensemester ".$Kalender." und Ausbildungssemeser ".$row->instudiensemester." (OrgForm ".$orgform.");"; - $update1++; - } - } - } - } } } } @@ -481,6 +398,96 @@ if($result = pg_query($conn, $qry)) { echo "
".$qry_chk."
".pg_last_error($conn)."
"; } + + $qry_chk="SELECT * FROM public.tbl_prestudent WHERE person_id=".myaddslashes($row_synk->person_id)." AND studiengang_kz=".myaddslashes($row->studiengang_kz).";"; + if($result_chk = pg_query($conn, $qry_chk)) + { + if($row_chk=pg_fetch_object($result_chk)) + { + $prestudent_id=$row_chk->prestudent_id; + } + } + if($row->instudiensemester>$maxsemester[$row->studiengang_kz]) + { + $row->instudiensemester=$maxsemester[$row->studiengang_kz]; + } + $qry_ins=''; + $qry_status="SELECT * FROM public.tbl_prestudentrolle WHERE prestudent_id='".$prestudent_id."' AND rolle_kurzbz='".$rolle."' AND studiensemester_kurzbz='".$Kalender."' AND ausbildungssemester='".$row->instudiensemester."';"; + $result_status=pg_query($conn,$qry_status); + if(pg_num_rows($result_status)==0) + { + $iu='i'; + $qry_ins="INSERT INTO public.tbl_prestudentrolle (prestudent_id, rolle_kurzbz, + studiensemester_kurzbz, ausbildungssemester,datum, orgform_kurzbz, + insertamum, insertvon, updateamum, updatevon, ext_id) + VALUES (". + myaddslashes($prestudent_id).", ". + myaddslashes($rolle).", ". + myaddslashes($Kalender).", "; + //max.studiendauer wenn ausbildungssemester größer (v.a. für 50er und 60er) + if($row->instudiensemester>$maxsemester[$row->studiengang_kz]) + { + $qry_ins.=myaddslashes($maxsemester[$row->studiengang_kz]); + } + else + { + $qry_ins.=myaddslashes($row->instudiensemester); + } + $qry_ins.=", ".myaddslashes($semstart[$Kalender]).", ". + myaddslashes($orgform).", + now(), + 'SYNC', + NULL, + NULL, ". + myaddslashes($row->__person).")"; + } + else + { + $iu='u'; + if($row_status=pg_fetch_object($result_status)) + { + $qry_ins=''; + if ($row_status->orgform_kurzbz!=$orgform) + $qry_ins.="orgform_kurzbz=".myaddslashes($orgform).", "; + + if($row->instudiensemester>$maxsemester[$row->studiengang_kz]) + $row->instudiensemester=$maxsemester[$row->studiengang_kz]; + if ($row_status->ausbildungssemester!=$row->instudiensemester) + $qry_ins.="ausbildungssemester=".myaddslashes($row->instudiensemester).", "; + if($row_status->datum!=($semstart[$Kalender])) + { + $qry_ins.="datum=".myaddslashes($semstart[$Kalender]).", "; + } + if($qry_ins!='') + { + $qry_ins="UPDATE public.tbl_prestudentrolle SET ".$qry_ins."updateamum=now(), updatevon='SYNC' + WHERE prestudent_id='".$prestudent_id."' AND rolle_kurzbz='".$rolle."' AND studiensemester_kurzbz='".$Kalender."';"; + } + } + } + if($qry_ins!='') + { + if(!$result_neu = pg_query($conn, $qry_ins)) + { + $error_log.= $qry_ins."\n".pg_last_error($conn)." \n"; + $fehler1++; + pg_query($conn, "ROLLBACK"); + } + else + { + pg_query($conn, "COMMIT"); + if($iu=='i') + { + $ausgabe.="\n---Rolle eingefügt: ".$rolle." im Studiensemester ".$Kalender." und Ausbildungssemeser ".$row->instudiensemester." (OrgForm ".$orgform.");"; + $eingefuegt1++; + } + elseif($iu=='u') + { + $ausgabe.="\n---Rolle geändert: ".$rolle." im Studiensemester ".$Kalender." und Ausbildungssemeser ".$row->instudiensemester." (OrgForm ".$orgform.");"; + $update1++; + } + } + } } } else