From 57ad398cecfe30b629fbc1233ae5a143ef2edc73 Mon Sep 17 00:00:00 2001 From: Karl Burkhart Date: Wed, 19 Jan 2011 15:56:50 +0000 Subject: [PATCH] --- include/wawi_bestellung.class.php | 58 +++++++++++-------------------- 1 file changed, 21 insertions(+), 37 deletions(-) diff --git a/include/wawi_bestellung.class.php b/include/wawi_bestellung.class.php index 1c0347223..8cca26317 100644 --- a/include/wawi_bestellung.class.php +++ b/include/wawi_bestellung.class.php @@ -564,6 +564,11 @@ class wawi_bestellung extends basis_db */ function copyBestellung($bestellung_id, $user) { + // neue Bestellnummer erstellen + $bestellung = new wawi_bestellung(); + $bestellung->load($bestellung_id); + $newBestellNummer = $bestellung->createBestellNr($bestellung->kostenstelle_id); + if(!is_numeric($bestellung_id)) { $this->errormsg = "Keine gültige Bestell ID"; @@ -577,9 +582,9 @@ class wawi_bestellung extends basis_db $qry_bestellung = "INSERT INTO wawi.tbl_bestellung (bestellung_id, besteller_uid, kostenstelle_id, konto_id, firma_id, lieferadresse, rechnungsadresse, freigegeben, bestell_nr, titel, bemerkung, liefertermin, updateamum, updatevon, insertamum, insertvon, ext_id) SELECT nextval('wawi.seq_bestellung_bestellung_id'), ".$this->addslashes($user).", kostenstelle_id, konto_id, firma_id, lieferadresse, - rechnungsadresse, 'false', bestell_nr, titel, bemerkung, liefertermin, now(), ".$this->addslashes($user).", now(), ".$this->addslashes($user).", ext_id FROM wawi.tbl_bestellung WHERE + rechnungsadresse, 'false', '$newBestellNummer', titel, bemerkung, liefertermin, now(), ".$this->addslashes($user).", now(), ".$this->addslashes($user).", ext_id FROM wawi.tbl_bestellung WHERE bestellung_id = ".$bestellung_id.";"; - //echo $qry_bestellung; + if(!$this->db_query($qry_bestellung)) $error = true; @@ -842,45 +847,24 @@ class wawi_bestellung extends basis_db if ($akt_mon<9) $akt_year--; $akt_year=substr($akt_year,2,2); - $laenge=strlen($oe_kurzbz.$akt_year.$kostenstelle_kz); - $sql_query="SELECT distinct substr(wawi.tbl_bestellung.bestell_nr,$laenge+1,3) as nr FROM wawi.tbl_bestellung ". - " WHERE wawi.tbl_bestellung.bestell_nr LIKE '$oe_kurzbz$akt_year$kostenstelle_kz"."___' ". - "ORDER BY nr "; - echo $sql_query."
"; - $result=@pg_query($conn, $sql_query); -// sprintf('%f30') - //SELECT max(substr(bestell_nr,length(bestell_nr)-2)) FROM wawi.tbl_bestellung WHERE wawi.tbl_bestellung.bestell_nr LIKE 'BIF10IF___' - - $i=0; - if (@pg_num_rows($result)==0) - $bnum="000"; + $kuerzel = $oe_kurzbz.$akt_year.$kostenstelle_kz.'___'; + $qry = "SELECT max(substr(bestell_nr,length(bestell_nr)-2)) FROM wawi.tbl_bestellung WHERE wawi.tbl_bestellung.bestell_nr LIKE '$kuerzel';"; + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { $bnum = $row->max + 1; + $bnum = sprintf("%03s",$bnum); } + else + $bnum = '000'; + } else { - while ($row=@pg_fetch_object($result)) - { - $bnum=$row->nr; - if ($i!=(int)$bnum) - { - if ($i==0) - { - $bnum=-1; - } - else - { - $row=@pg_fetch_object($result, --$i); - $bnum=$row->nr; - $i=@pg_num_rows($result); - //echo "Nachher: i=$i bnum=$bnum
"; - } - break; - } - $i++; - } - $bnum++; + $this->errormsg ="Fehler bei der Datenbankabfrage aufgetreten"; + return false; } - for ($i=0;strlen($bnum)<3;$i++) - $bnum="0".$bnum; + $kostenstelle_kz = mb_strtoupper($kostenstelle_kz); $bnum=sprintf("%s%s%s%s",$oe_kurzbz,$akt_year,$kostenstelle_kz,$bnum); return $bnum;