Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 25.03.2014 Ostrzeżenie: (0%)
|
Witam,
Mam taki problem z nadawaniem nr spraw od początku wraz z rozpoczęciem kolejnego roku. Zaczął się nowy rok i chciałbym aby moja składnia nadawała numery od 1, a nie od ostatniego znajdującego się w bazie. Funkcja wygląda tak: Kod public function nadajSprawy(array $bifs) { $rok = date('Y'); $da = $this->getDefaultAdapter(); try { // rozpocznij transakcję $da->beginTransaction(); // zablokuj bazę (read only) $da->exec("lock table sprawy in share mode;"); // trzeba wziąść listę tych bez sprawy, posortowane według bif_id $bezSpraw = $this->select() ->where("sprawa = ?", "") ->where(new Zend_Db_Expr("date_part('year', rekord_data) = " . $rok)) ->order("bif_id ASC"); $lista = $this->fetchAll($bezSpraw); //echo "Ilość pozycji bez spraw w tym roku: ".count($lista)."<br>"; // pobrać ostatnią, najwyższą wartość sprawy $ostatnia = $this->select() //->columns(array("sprawa")) ->where("sygnatura <> ?", "") ->where(new Zend_Db_Expr("date_part('year', rekord_data) = " . $rok)) ->order("bif_id DESC") ->limit("1"); $ostatniWiersz = $this->fetchRow($ostatnia); $lp = 0; $indexOsobowy = 0; //echo "Rok: " . $rok . "<br>"; if ($ostatniWiersz !== NULL) { //echo "Ostatnia sprawa: " . $ostatniWiersz->sprawa . "<br>"; // wyizolować części ostatniej sprawy $parts = explode(".", $ostatniWiersz->sprawa); // odnaleźć indeks części osobowe w tabeli $indexOsobowy = array_search($parts[5], $this->osobowy); $lp = $parts[4]; } //echo "ostatni LP: " . $lp . "<br>"; //echo "ostatni osobowy: " . $this->osobowy[$indexOsobowy] . "<br>"; // ustawic sprawe, zwiększająć wartość o jeden i wykorzytując wartość osobowa o wskazanym indeksie foreach ($lista as $row) { /** @var Zend_Db_Table_Row $row */ $lp++; // jeśli wartość % 100 = 1, zwiększyć indeks osobowy o 1, chyba ze max osiagniety, wówczas licz od 0 if ($lp % 100 == 1) { $indexOsobowy++; if ($indexOsobowy >= sizeof($this->osobowy)) { $indexOsobowy = 0; } } // ustaw wymagane wartosci pol wiersza i zapisz $row->lp = $lp; $row->osobowy_index = $indexOsobowy; //echo "BIF_ID: ".$row->bif_id."; LP: ".$row->lp. "; Sprawa ".$row->sprawa ."<br>"; $row->save(); } // commit $da->commit(); Z góry dziękuję za pomoc. Ten post edytował chrisstim 25.03.2014, 11:17:16 |
|
|
|
chrisstim problem z nadawaniem nr spraw 25.03.2014, 11:09:30
nospor 1) Uzywaj BBCODE dla kodu ktory wstawiasz !
2)... 25.03.2014, 11:14:59
chrisstim Przepraszam, za brak bbcode i sieczke "nie... 25.03.2014, 11:21:54
nospor Dla kodu php uzywa sie BBCODE PHP a nie CODE.
Trz... 25.03.2014, 11:25:24
Lacki2006 Też się zastanawiałem ostatnio nad zmianą nr dokum... 26.03.2014, 22:45:26 ![]() ![]() |
|
Aktualny czas: 20.12.2025 - 16:30 |