Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class DokumentBaza extends DB {
- private $conn;
- /**
- * Uzima sve oblasti u dokumentu, npr. zaglavlje, stavke1, stavke2...
- *
- * @param string $ime_dok
- * @param string $param
- * @return array
- */
- public function __construct($config = null) {
- parent::__construct($config);
- }
- function uzmi_oblasti_dok($ime_dok, $param) {
- $oblasti = array();
- $sql_query = "SELECT u.Ime, u.TUD, u.Tabela, webBrojRedova as MaxHeight, u.levo as WebLeft, u.vrh as WebTop,u.Width,u.height "
- . " FROM Upiti as u WHERE NazivDokumenta='$ime_dok' AND Ime LIKE '{$param}%' ORDER BY u.TUD";
- $rezultat = $this->query($sql_query);
- while ($red = $this->fetch($rezultat)) {
- $tmp = array();
- $ime_oblasti = str_replace($param, '', $red[0]);
- $tmp["tabela"] = $red['Tabela'];
- $tmp["TUD"] = $red['TUD'];
- $tmp["MaxHeight"] = $red['MaxHeight'];
- $tmp["WebLeft"] = $red['WebLeft'];
- $tmp["WebTop"] = $red['WebTop'];
- $tmp["Width"] = $red['Width'];
- $tmp["height"] = $red['height'];
- $tmp["BrojVidljivih"] = $this->uzmi_broj_vidljivih($ime_dok, $ime_oblasti);
- $selekt = $this->uzmi_select_za_oblast($ime_dok, $param . $ime_oblasti);
- $tmp["SELECT"] = $selekt;
- $tmp["ImeOblasti"] = $ime_oblasti;
- $tmp["OblastOriginalno"] = $red['Ime'];
- $oblasti[$ime_oblasti] = $tmp;
- }
- if (empty($oblasti)) {
- Log::DATABASE_FATAL_ERROR($sql_query);
- throw new Exception('Greska u funkciji uzmi oblasti dok!');
- }
- return $oblasti;
- }
- /**
- * Uzima sve oblasti u dokumentu, npr. zaglavlje, stavke1, stavke2...
- *
- * @param string $ime_dok
- * @param string $param
- * @return array
- */
- function uzmi_oblast_dok($ime_dok, $param, $TUD) {
- $oblasti = array();
- $sql_query = "SELECT u.Ime,u.Upit, u.TUD, u.Tabela "
- . " FROM Upiti as u WHERE NazivDokumenta='$ime_dok' AND TUD=$TUD AND Ime LIKE '{$param}%' ORDER BY u.TUD";
- $rezultat = $this->query($sql_query);
- while ($red = $this->fetch($rezultat)) {
- $ime_oblasti = str_replace($param, '', $red[0]);
- $oblasti["ImeOblasti"] = $ime_oblasti;
- $oblasti["tabela"] = $red['Tabela'];
- $oblasti["TUD"] = $red['TUD'];
- $oblasti["upit"] = $red['Upit'];
- // $tmp["MaxHeight"] = $red['MaxHeight'];
- // $tmp["WebLeft"] = $red['WebLeft'];
- // $tmp["WebTop"] = $red['WebTop'];
- // $tmp["Width"] = $red['Width'];
- // $tmp["height"] = $red['height'];
- // $tmp["BrojVidljivih"] = $this->uzmi_broj_vidljivih($ime_dok, $ime_oblasti);
- // $selekt = $this->uzmi_select_za_oblast($ime_dok, $param . $ime_oblasti);
- // $tmp["SELECT"] = $selekt;
- // $oblasti[$ime_oblasti] = $tmp;
- }
- if (empty($oblasti)) {
- Log::DATABASE_FATAL_ERROR($sql_query);
- throw new Exception('Greska u funkciji uzmi oblasti dok!');
- }
- return $oblasti;
- }
- /**
- * Uzima oblasti u dokumentu koje se odnose na stavke
- *
- * @param string $ime_dok
- * @return array
- */
- function uzmi_tabele_dok($ime_dok) {
- $sql_query = "SELECT Substring(u.Ime,5,len(u.Ime)-4) as Ime,Upit as selekt,TUD,idDok FROM Upiti as u,RefreshGrida as rg
- where NazivDokumenta='$ime_dok' AND TUD>0 AND Dokument=NazivDokumenta AND ImeUpita like'%Stavke%' AND Ime LIKE 'GgRr%'
- AND Substring(u.Ime,5,len(u.Ime)-4)=ImeUpita ORDER BY TUD";
- $rezultat = $this->query($sql_query);
- $tbl = array();
- while ($red = $this->fetch_object($rezultat)) {
- $tmp = array();
- $tmp["ImeTabele"] = str_replace("GgRr", "", $red->Ime);
- $tmp["SELEKT"] = $red->selekt;
- $tmp["IdSegment"] = $red->idDok;
- $tbl["$red->TUD"] = $tmp;
- }
- if (empty($tbl)) {
- Log::DATABASE_FATAL_ERROR($sql_query);
- throw new Exception('Greska u funkciji uzmi tabele dok!');
- }
- return $tbl;
- }
- /**
- * Vraca podatke o sifarniku
- *
- * @param string $naziv_dok
- * @return array
- */
- function init_sif_dok($naziv_dok) {
- $data = array();
- $sql_query = "SELECT ID_SifarnikDokumenta, Vrsta, NacinRegistracije, KnjiziSe, UlazniIzlazni FROM SifarnikDokumenta where Naziv='$naziv_dok'";
- $rezultat = $this->query($sql_query);
- while ($red = $this->fetch_Assoc($rezultat)) {
- $data = $red;
- }
- if (empty($data)) {
- Log::DATABASE_FATAL_ERROR($sql_query);
- throw new Exception('Greska u funkciji init sif dok!');
- }
- return $data;
- }
- /**
- * Uzima dozvole za dati dokument
- *
- * @param string $naziv_dok
- * @param integer $idke
- * @return array
- */
- function provera_dozvola($naziv_dok, $idke) {
- $idorg = $_SESSION[idorg]; ///$this->uzmi_idorg_rad($idke);
- $dozvole = array();
- $dozvole["Proknjizen"] = 0;
- $dozvole["Unos"] = 0;
- $dozvole["Izmena"] = 0;
- $dozvole["Brisanje"] = 0;
- $dozvole["Storno"] = 0;
- $dozvole["Knjizenje"] = 0;
- $sql_query = "select Proknjizen,Unos,Izmena,Brisanje,Storno,Knjizenje from grupa as g "
- . " where g.Naziv = '" . $naziv_dok . "' and g.id_kadrovskaevidencija=" . $idke;
- $rezultat = $this->query($sql_query);
- $red = $this->fetch($rezultat);
- if (empty($red)) {
- $sql_query = "select Proknjizen,Unos,Izmena,Brisanje,Storno,Knjizenje from grupa as g "
- . " where g.ID_OrganizacionaStruktura=" . $idorg . " AND g.Naziv = '" . $naziv_dok . "'";
- $rezultat = $this->query($sql_query);
- $red = $this->fetch($rezultat);
- }
- if (!empty($red)) {
- $dozvole["Proknjizen"] = (int) $red[0];
- $dozvole["Unos"] = (int) $red[1];
- $dozvole["Izmena"] = (int) $red[2];
- $dozvole["Brisanje"] = (int) $red[3];
- $dozvole["Storno"] = (int) $red[4];
- $dozvole["Knjizenje"] = (int) $red[5];
- }
- return $dozvole;
- }
- /**
- * Proverava stanje za dati dokument
- *
- * @param string $naziv_dok
- * @param integer $id_dok
- * @return string
- */
- function proveristanje($naziv_dok, $id_dok, $TrebaProvera) {
- if (strpos($naziv_dok, "Lot") > 0 && $TrebaProvera != 3) {
- $this->sp_proverastanja($naziv_dok, $id_dok);
- $PrStanja = "Select dbo.ProveraStanjaF() as Stanje";
- $rezultat = $this->query($PrStanja);
- $red = $this->fetch($rezultat);
- if (trim($red[0]) == "") {
- $this->sp_proverastanjalot($naziv_dok, $id_dok);
- $PrStanjaLot = "Select dbo.LotProveraStanjaF() as Stanje";
- }
- } elseif (strpos($naziv_dok, "Lot") > 0 && $TrebaProvera == 3) {
- $this->sp_proverastanjalot($naziv_dok, $id_dok);
- $PrStanjaLot = "Select dbo.LotProveraStanjaF() as Stanje";
- } else {
- $this->sp_proverastanja($naziv_dok, $id_dok);
- $PrStanja = "Select dbo.ProveraStanjaF() as Stanje";
- }
- $rezultat = $this->query($PrStanja);
- $red = $this->fetch($rezultat);
- return $red[0];
- }
- /**
- * Vraca decimalni broj u tekstualnom formatu
- *
- * @param float $KojiBroj
- * @param string $KojaValuta
- * @return string
- */
- public function BrojSlovima($KojiBroj, $KojaValuta) {
- $U = $KojiBroj;
- $CeoDeo = ($U - fmod($U, 100)) / 100;
- if ($CeoDeo < 0) {
- $Broj = -1 * $CeoDeo;
- } else {
- $Broj = $CeoDeo;
- }
- $Ceo = ($Broj - fmod($Broj, 1000)) / 1000;
- $k = 1;
- $Ostatak = fmod($Broj, 1000);
- while ($Broj != 0) {
- $OstOst = fmod($Ostatak, 100);
- $CeoOst = ($Ostatak - fmod($Ostatak, 100)) / 100;
- if ($OstOst < 10) {
- $kveri = " SELECT * FROM Brojevi Where BR=" . $OstOst;
- $rez = $this->query($kveri);
- $red = $this->fetch($rez);
- if ($k == 1) {
- if ($OstOst != 0) {
- $Slovima = $red[$k];
- }
- } else {
- $Slovima = $red[$k] . $Slovima;
- }
- } else // ostatak nije<10 {
- if ($OstOst < 20 && $OstOst > 10) {
- $kveri = " SELECT * FROM Brojevi Where BR=" . $OstOst;
- $rez = $this->query($kveri);
- $red = $this->fetch($rez);
- if ($k == 1) {
- $Slovima = $red[1]; //Pretraga!jedinica;
- } else {
- $Slovima = $red[$k] . $Slovima;
- }
- } else // ostost nije izmedju 10 i 20 {
- if ($k == 1) {
- $pom = fmod($OstOst, 10);
- if ($pom != 0) {
- $kveri = " SELECT * FROM Brojevi Where BR=" . $pom;
- $rez = $this->query($kveri);
- $red = $this->fetch($rez);
- $Slovima = $red[$k];
- }
- $pom = ($OstOst - fmod($OstOst, 10)) / 10;
- $kveri = " SELECT * FROM Brojevi Where BR=" . $pom;
- $rez = $this->query($kveri);
- $red = $this->fetch($rez);
- $Slovima = $red[2] . $Slovima;
- } else {
- $pom = fmod($OstOst, 10);
- if ($pom !== 0) {
- $kveri = " SELECT * FROM Brojevi Where BR=" . $pom;
- $rez = $this->query($kveri);
- $red = $this->fetch($rez);
- $Slovima = $red[$k] . $Slovima;
- }
- $pom = ($OstOst - fmod($OstOst, 10)) / 10;
- if ($k != 1 && fmod($OstOst, 10) == 0) {
- $kveri = " SELECT * FROM Brojevi Where BR=0";
- $rez = $this->query($kveri);
- $red = $this->fetch($rez);
- $Slovima = $red[$k] . $Slovima;
- }
- $kveri = " SELECT * FROM Brojevi Where BR=" . $pom;
- $rez = $this->query($kveri);
- $red = $this->fetch($rez);
- $Slovima = $red[2] . $Slovima; //Pretraga!desetica + $Slovima;
- }
- if ($CeoOst == -1) {
- $CeoOst = 0;
- }
- if ($CeoOst != 0) {
- $kveri = " SELECT * FROM Brojevi Where BR=" . $CeoOst;
- $rez = $this->query($kveri);
- $red = $this->fetch($rez);
- $Slovima = $red[3] . $Slovima; //Pretraga!STOTINA + $Slovima;
- }
- if ($k == 1) {
- $k = $k + 3;
- } else if ($k == 4) {
- $k++;
- } else {
- $k = 1;
- }
- $Broj = $Ceo;
- $Ostatak = fmod($Ceo, 1000);
- $Ceo = ($Ceo - fmod($Ceo, 1000)) / 1000;
- } // kraj while
- $Slovima = $Slovima . " " . $KojaValuta . " i " . round(fmod($U, 100)) . "/100";
- return $Slovima;
- }
- /**
- * Vrsi proveru dozvola za otvaranje dokumenta i povlacenje sa prethodnika za dokumenta
- *
- * @param string $naziv_dok $float = 0.123; $string = sprintf("%.3f", $float);
- * @param integer $iddok
- * @return boolean
- */
- public function dokumentstablo($naziv_dok, $iddok) {
- //Podaci o dokumentu koji otvaramo
- $Dokument = $naziv_dok;
- $ProveraDok = "select distinct d.* from dokumentatotali as d WITH(NOLOCK)
- where d.id_dokumentatotali=$iddok";
- $rezultat_prethodni = $this->query($ProveraDok);
- while ($red = $this->fetch_object($rezultat_prethodni)) {
- $Predhodnik = $red->Predhodni;
- $ID_Predhodnik = $red->ID_Predhodni;
- }
- $rssifdok = "Select NacinRegistracije,Vrsta,ulazniizlazni,OdakleSePreuzima From SifarnikDokumenta Where naziv = '$naziv_dok'";
- $rezultat = $this->query($rssifdok);
- $red = $this->fetch_object($rezultat);
- $NazivKlona = $red->ulazniizlazni;
- $NacinRegistracije = $red->NacinRegistracije;
- $OdakleSePreuzima = trim($red->OdakleSePreuzima);
- $poruka = $this->provera_dozvola($Dokument, $_SESSION[idke]);
- if (!$poruka) { // BORKA dodati proveru sadrzaja dozvola
- alertporuka("Nije dozvoljen pristup");
- return $poruka;
- } else {
- if ($NacinRegistracije == "B") {
- $TrebaProvera = 0;
- $postojiuzaglavlju = true;
- $RsRecnikPodataka = "Select OOrderBy as TrebaProvera from RecnikPodataka where dokument = '$NazivKlona' and OOrderBy>0 and OOrderBy<4"; //treba provera stanja
- $rezultat = $this->query($RsRecnikPodataka);
- $red = $this->fetch($rezultat);
- if (!empty($red)) {
- $TrebaProvera = $red[0];
- }
- // $postojiuzaglavlju = true;
- if ($Dokument == "OpisTransakcije") {
- $rsDaLiPostojiUZaglavlju = "select * from OpisTransakcije where ID_DokumentaView = $iddok";
- } else {
- if ($Dokument == "NaklogGlavneKnjige") {
- $rsDaLiPostojiUZaglavlju = "select * from NalogGlavneKnjige where ID_DokumentaView = $iddok";
- } else {
- $rsDaLiPostojiUZaglavlju = "select * from {$NazivKlona}Totali where ID_{$NazivKlona}Totali = $iddok";
- }
- }
- $rezultat = $this->query($rsDaLiPostojiUZaglavlju);
- $red = $this->fetch($rezultat);
- if (empty($red)) {
- $postojiuzaglavlju = false;
- }
- }
- if (!$postojiuzaglavlju) {
- if ($NacinRegistracije == "B" || trim($OdakleSePreuzima) != "") {
- switch (trim($OdakleSePreuzima)) {
- case "P":
- if ($Predhodnik != "" && $ID_Predhodnik > 1) {
- $Poruka = "Da li preuzimate podatke sa predhodnog dokumenta ?";
- $Predhodi = false;
- if (!isset($_REQUEST["odgovor"])) {
- confirmporuka($Poruka);
- die();
- } else if ($_REQUEST["odgovor"] == 1) {
- $Predhodi = True;
- }
- if ($Predhodi) {
- $IdDP = "select ds.naziv as Dokument , d.*,sd.ulazniizlazni from dokumenta as d, dokumentastablo as ds,SifarnikDokumenta as sd
- where ds.id_dokumentaStablo=d.id_DokumentaStablo and d.id_dokumenta= $ID_Predhodnik And sd.naziv = ds.naziv";
- $rezultatp = $this->query($IdDP);
- $redp = $this->fetch_object($rezultatp);
- $naziv_dok_preth = $redp->ulazniizlazni;
- $id_dok_preth = $redp->ID_Dokumenta;
- // povlacenja podataka iz prethodnika
- $this->conn = $this->get_link();
- $this->conn->beginTransaction();
- $this->sp_povucisapredhodnika($naziv_dok_preth, $NazivKlona, $id_dok_preth, $iddok);
- if ($naziv_dok == "KonacniRacun" || $naziv_dok == "PDVIzlazniRacunZaUsluge") {
- $ret = $this->conn->exec("update Racun set ID_Avansi = 1 Where ID_DokumentaView = $iddok");
- $ret = $this->conn->exec("update RacunZaUsluge set ID_AvansiIzvodi = 1 Where ID_DokumentaView = $iddok");
- }
- if ($naziv_dok == "KonacniUlazniRacun" || $naziv_dok == "UlazniAvansniRacun") {
- $ret = $this->conn->exec("update Racun set BrUr = '' Where ID_DokumentaView = $iddok");
- }
- if (strpos($naziv_dok, "lazniJCI") > 0) {
- $ret = $this->conn->exec("update JCI set ID_RacunTotali = $id_dok_preth where id_DokumentaView = $iddok");
- }
- // provera stanja nakon povlacenja slogova sa predhodnika
- $provera = '';
- if ($TrebaProvera == 1) {
- $provera = $this->proveristanje($naziv_dok, $iddok);
- }
- if ($provera == '') {
- $this->commit();
- $poruka = $this->sp_totali($NazivKlona, $iddok);
- if ($poruka) {
- $poruka = $this->sp_cene_i_stanje($iddok);
- }
- } else {
- $this->rollback();
- alertporuka($provera);
- return true;
- }
- return $poruka;
- } // kraj ima predhodnika
- }
- break;
- case "F":
- case "M":
- // if Not Proveri(IdDokView, NazivKlona) Then
- // pNalog = NazivKlona
- // pPrikaceniFajl = rssifdok!PutanjaZaCuvanje
- // Izvod.Label1.Caption = Dokument
- // Izvod.Label2.Caption = ProveraDok!Datum
- // Izvod.Tag = Str(IdDokView)
- // Izvod.Show
- // otvoren = True
- // Do
- // DoEvents
- // Loop Until Not (otvoren)
- // if trim(PorukaIzIzvoda) = "" Then
- // if Dokument = "KursnaLista" Then
- // AzurirajCarinskiKurs ProveraDok!Datum
- // End if
- // cnn1.Execute "TotaliZaDokument '" + trim(NazivKlona) + "', " + Str(IdDokView), adCmdStoredProc
- // Predhodi = True
- // else
- // DokumentStablo = False
- // End if
- break;
- } // kraj switch
- }
- } // kraj postoji u zaglavlju=false
- }
- // } // kraj postoji kursna lista
- return true;
- }
- // public function DoradiPotrosnju($Fiddokview, $DatumP = null) {
- /**
- * @todo COMMENT
- *
- * @param integer $Fiddokview
- */
- public function DoradiPotrosnju($Fiddokview) {
- $rsd = "delete from NalogKooperantaSirovineStavke where id_Dokumentaview=" . $Fiddokview;
- $this->query($rsd);
- $rsd = "delete from NalogKooperantaSirovineUkupnoStavke where id_Dokumentaview=" . $Fiddokview;
- $this->query($rsd);
- $rsi = " insert into NalogKooperantaSirovineStavke(id_DokumentaView, ID_SirovinaView, Kolicina, ID_NormativView)"
- . " select " . $Fiddokview . " as id_DokumentaView, r.ID_SirovinaView,"
- . " (r.Kolicina*n.kolicina) as Kolicina, n.ID_NormativView"
- . " from NalogKooperantaStavke as n, ReceptiStavke as r,Recepti as rr "
- . " where n.ID_DokumentaView=" . $Fiddokview
- . " and n.id_normativview=r.id_DokumentaView"
- . " and n.id_normativview=rr.id_DokumentaView";
- $this->query($rsi);
- $rsu = " update NalogKooperantaSirovineStavke set ProsecnaNabavnaCena=c.ProsecnaNabavnaCena "
- . " from ceneartikalanaskladistimapred as c,NalogKooperanta as r,"
- . " NalogKooperantaSirovineStavke as rs, dokumenta as d "
- . " where r.ID_DokumentaView=d.ID_Dokumenta And"
- . " r.ID_DokumentaView=rs.ID_DokumentaView And "
- . " c.ID_ArtikliView=ID_SirovinaView And "
- . " c.Id_skladiste=r.ID_SkladisteIz and"
- . " c.Datum =(SELECT MAX(datum) from CeneArtikalanaskladistimaPred "
- . " Where CeneArtikalanaskladistimaPred.ID_ArtikliView = c.ID_ArtikliView "
- . " AND (Skl = C.Skl) AND datum <= d.Datum AND CeneArtikalanaskladistimaPred.ID_DokumentaView<>" . $Fiddokview . ") "
- . " and ID_CeneArtikalaNaSkladistimapred=(SELECT max(ID_CeneArtikalaNaSkladistimapred) "
- . " FROM CeneArtikalanaskladistimaPred WHERE CeneArtikalanaskladistimaPred.ID_ArtikliView = C.ID_ArtikliView "
- . " AND (Skl = C.Skl) AND datum = c.Datum ) AND "
- . " r.ID_DokumentaView=" . $Fiddokview;
- $this->query($rsu);
- $rsi = " insert into NalogKooperantaSirovineUkupnoStavke(id_DokumentaView, ID_SirovinaView,ProsecnaNabavnaCena ,Kolicina)"
- . " select " . $Fiddokview . " as id_DokumentaView, ID_SirovinaView,ProsecnaNabavnaCena ,sum(Kolicina)"
- . " from NalogKooperantaSirovineStavke as n where n.ID_DokumentaView=" . $Fiddokview
- . " group by id_DokumentaView, ID_SirovinaView,ProsecnaNabavnaCena";
- $this->query($rsi);
- $rsu = "update NalogKooperantaSirovineStavke set Uuser=" . $_SESSION[idke] . " where Id_DokumentaView=" . $Fiddokview;
- $this->query($rsu);
- $rsu = "update NalogKooperantaSirovineUkupnoStavke set Uuser=" . $_SESSION[idke] . " where Id_DokumentaView=" . $Fiddokview;
- $this->query($rsu);
- }
- /**
- * Azurira carinski kurs
- *
- * @param string $ZaDatum
- */
- public function AzurirajCarinskiKurs($ZaDatum) {
- $numberOfWeeks = 1;
- $d = strtotime("+2 day", strtotime($ZaDatum));
- $d->modify('-' . $numberOfWeeks . ' weeks');
- $rsc = "Select id_sifrarnikValuta,Srednji from kursnalista where datum = '" . $d . "'";
- $rez = $this->query($rsc);
- while ($red = $this->fetch_object($rez)) {
- $rsu = "Update kursnalista set carinski=" . $red->Srednji
- . " where id_sifrarnikValuta=" . $red->ID_SifrarnikValuta . " AND datum='" + $ZaDatum + "'";
- $this->query($rsu);
- }
- }
- /**
- * Provera dozvolu za rad sa proknjizenim dokumentima
- *
- * @param string $naziv_dok
- * @param integer $idke
- * @return integer
- */
- function provera_proknjizeno($naziv_dok, $idke) {
- $idorg = $this->uzmi_idorg_rad($idke);
- // $proknjizeno = 0;
- $sql_query = "select Proknjizen from grupa where Naziv = '$naziv_dok'
- and ID_OrganizacionaStruktura=$idorg";
- // $i = 0;
- $rezultat = $this->query($sql_query);
- $red = $this->fetch($rezultat);
- $proknjizeno = $red[0];
- return $proknjizeno;
- }
- /**
- * @todo COMMENT
- *
- * @param string $operacija
- * @param integer $iddokview
- * @param string $unesenidatum
- * @return boolean
- */
- function provera_dokumentaidatuma($operacija, $iddokview, $unesenidatum) {
- $sql_query = "select s.ulazniizlazni as NazivDokumenta,d.BrojDokumenta as BrDok,NacinRegistracije as nr,
- d.Proknjizeno as p ,Knjizise,d.Datum,d.ttime
- from Dokumenta as d WITH(NOLOCK), DokumentaStablo as ds WITH(NOLOCK), SifarnikDokumenta as s WITH(NOLOCK)
- where s.naziv=ds.Naziv and d.ID_DokumentaStablo = ds.ID_DokumentaStablo and d.ID_Dokumenta=$iddokview";
- $rezultat = $this->query($sql_query);
- if (!$rezultat) { // ne postoji u dokumentima vec samo u totalima
- jsonPoruka("Dokument je arhiviran ne moze se menjati");
- return false;
- }
- $red = $this->fetch_object($rezultat);
- $BrojDokumenta = $red->BrDok;
- $status = trim($red->p);
- $NazivDokumenta = $red->NazivDokumenta;
- if ($operacija == 'Brisanje' || $operacija == 'Izmena') {
- if ($status === 'Proknjizen') {
- $proknjizeno = $this->provera_proknjizeno($NazivDokumenta, $_SESSION['idke']);
- if ($proknjizeno == 0) { // nije dozvoljen rad sa proknjizenim dokumentima
- if ($operacija == 'Brisanje') {
- $Poruka = "Dokument proknjizen nije vam dozvoljena operacija:" . $operacija;
- jsonPoruka($Poruka);
- return false;
- }
- }
- }
- $findme = 'S';
- $n = strpos($BrojDokumenta, $findme);
- if ($n > 0) { // postoji S u broju dokumenta
- jsonPoruka("Nije dozvoljena operacija za storno dokument!");
- return false;
- }
- }
- //POKUSAJ PREMESTANJA DOKUMENTA IZ GODINE U GODINU ILI IZMENE-BRISANJE DOKUMENTA IZ PREDHODNE GODINE A PROSAO JE 01.03. tekuce godine
- // $n = 0;
- $findme = 'tvaranje';
- $n = strpos($status, $findme);
- if ($NazivDokumenta == "Normativ" || $NazivDokumenta == "SemaBilansa" || $NazivDokumenta == "OpisTransakcije" || $n > 0) {
- } else { // dokumenta za koja se proverava godina
- if (strlen($unesenidatum) > 0) {
- $tekucagodina = intval(date("y"));
- $tekucimesec = intval(date("m"));
- $s11 = explode('.', $unesenidatum);
- $unesenagodina = intval($s11[2]);
- if ($unesenagodina < $tekucagodina && $tekucimesec > 2) {
- jsonPoruka("Zakljucena godina nije dozvoljena obrada !!!");
- die();
- }
- }
- if ($operacija == 'Izmena') {
- if (strlen($unesenidatum) > 0) {
- $s1 = explode('/', $BrojDokumenta);
- $s2 = explode('-', $s1[1]);
- $godinadokumenta = $s2[0];
- if (strlen($godinadokumenta) > 2) {
- $godinadokumenta = cint(subst($godinadokumenta, 2, 2));
- }
- if ($godinadokumenta <> $unesenagodina) {
- $Poruka = "Nije dozvoljena izmena datuma !!";
- jsonPoruka($Poruka);
- return false;
- }
- }
- }
- }
- if ($status != 'Proknjizen' && $operacija == 'Storno') {
- jsonPoruka("Dokument nije proknjizen ne moze storno!!");
- return false;
- }
- if ($operacija == 'Brisanje') {
- if ($status == 'Proknjizen') {
- jsonPoruka("Dokument je proknjizen ne moze brisanje!!");
- die();
- }
- // da li je predhodnik u nekom dokumentu
- $sql_query = "select BrojDokumenta from dokumenta WITH (NOLOCK) where id_Predhodni=" . $iddokview;
- $rezultat = $this->query($sql_query);
- if ($rezultat) { // dokument jeste predhodnik
- while ($red = $this->fetch_object($rezultat)) {
- $Poruka = "Nije dozvoljeno brisanje, dokument je predhodnik dokumentu: " . $red->BrojDokumenta;
- jsonPoruka($Poruka);
- return false;
- }
- }
- // da li brisemo racune ukljucene u kalkulacij
- $sql_query = " SELECT BrojDokumenta as BD,ID_KalkulacijaUfStavke as IDK "
- . " FROM KalkulacijaUfStavke as r WITH (NOLOCK), Dokumenta as d WITH (NOLOCK)"
- . " WHERE d.ID_Dokumenta=r.ID_DokumentaView and "
- . " r.ID_UlazniRacunZaUslugeCeo=" . $iddokview
- . " union "
- . " SELECT BrojDokumenta as BD,ID_KalkulacijaUf as IDK "
- . " FROM KalkulacijaUf as r WITH (NOLOCK), Dokumenta as d WITH (NOLOCK)"
- . " WHERE d.ID_Dokumenta=r.ID_DokumentaView and "
- . " r.ID_UlazniRacunCeo=" . $iddokview;
- $rezultat = $this->query($sql_query);
- if ($rezultat) { // dokument jeste ukljucen u kalkulaciju
- while ($red = $this->fetch_object($rezultat)) {
- $Poruka = "Nije dozvoljeno brisanje, dokument je ukljucen u kalkulaciju : " . $red->BrojDokumenta;
- jsonPoruka($Poruka);
- return false;
- }
- }
- //provera ako je NalogGlavneKnjige dali je prazan
- $sql_query = "select * from NalogGlavneKnjigeStavke WITH (NOLOCK) where ID_DokumentaView=" . $iddokview;
- $rezultat = $this->query($sql_query);
- if ($rezultat) { // dokument jeste ukljucen u kalkulaciju
- while ($red = $this->fetch_object($rezultat)) {
- jsonPoruka("Nalog nije prazan, zabranjeno brisanje!!!");
- return false;
- }
- }
- }
- return true;
- }
- /**
- * Uzima sve oblasti u dokumentu, npr. zaglavlje, stavke1, stavke2...
- *
- * @param string $ime_dok
- * @return array
- */
- function uzmi_segmente_dok($ime_dok) {
- $segmenti = array();
- $sql_query = "SELECT ImeUpita, TotaliDaNe, GridVezanDaNe, IdDok, Id_RefreshGrida FROM RefreshGrida where Dokument='$ime_dok'";
- $rezultat = $this->query($sql_query);
- while ($red = $this->fetch_Assoc($rezultat)) {
- $oblast = $red['ImeUpita'];
- $segmenti[$oblast] = $red;
- }
- if (empty($segmenti)) {
- throw new Exception("Prazni segmenti! Uzmi_segmente_dok!");
- }
- return $segmenti;
- }
- /**
- * Uzima sve oblasti u dokumentu, npr. zaglavlje, stavke1, stavke2...
- *
- * @param string $ime_dok
- * @return array
- */
- function uzmi_segment_dok($ime_dok, $imesegmenta) {
- $segmenti = array();
- $sql_query = "SELECT ImeUpita, TotaliDaNe, GridVezanDaNe, IdDok, Id_RefreshGrida FROM RefreshGrida where Dokument='$ime_dok' And ImeUpita='$imesegmenta'";
- $rezultat = $this->query($sql_query);
- while ($red = $this->fetch_Assoc($rezultat)) {
- $segmenti = $red;
- }
- if (empty($segmenti)) {
- throw new Exception("Prazni segmenti! Uzmi_segmente_dok!");
- }
- return $segmenti;
- }
- /**
- * Uzima select za datu oblast
- *
- * @param string $ime_dok
- * @param string $ime_oblasti
- * @return string
- */
- function uzmi_select_za_oblast($ime_dok, $ime_oblasti) {
- $rezultat = $this->query("SELECT Upit FROM Upiti where NazivDokumenta='$ime_dok' and Ime='$ime_oblasti'");
- $red = $this->fetch($rezultat);
- $selekt = $red[0];
- if ($selekt === '') {
- throw new Exception("Prazan select! Uzmi select za oblast!");
- }
- return $selekt;
- }
- /**
- * @todo COMMENT
- *
- * @param string $kveri
- * @return array
- */
- public function citaj_podatke($kveri) {
- try {
- $rez = $this->query($kveri);
- } catch (Exception $e) {
- return array();
- }
- $tmp = array();
- $red = $this->fetch($rez);
- if (!$red) {
- return $tmp;
- }
- foreach ($red as $key => $value) {
- if (!is_int($key)) {
- $tmp[$key] = trim(konverzija_iz_yuscii($value));
- }
- }
- return array_change_key_case($tmp);
- }
- /**
- * @todo COMMENT
- *
- * @return array
- */
- public function uzmi_vrste_dok() {
- $kveri = "SELECT SifarnikDokumenta.ID_SifarnikDokumenta, SifarnikDokumenta.Naziv
- FROM SifarnikDokumenta, DokumentaStablo
- WHERE SifarnikDokumenta.Naziv = DokumentaStablo.Naziv
- AND DokumentaStablo.CCopy = 0
- AND SifarnikDokumenta.NacinRegistracije = 'B' ORDER BY SifarnikDokumenta.Naziv";
- $data = array();
- $brojac = 0;
- $rez = $this->query($kveri);
- while ($red = $this->fetch($rez)) {
- $data [$brojac]["id"] = $red[0];
- $data [$brojac]["ime"] = $red[1];
- $brojac++;
- }
- return $brojac === 0 ? '' : $data;
- }
- /**
- * Vraca nacin registracije dokumenta
- *
- * @param string $naziv_dokumenta
- * @return string
- */
- public function uzmi_nacin_reg($naziv_dokumenta) {
- $kveri = "SELECT NacinRegistracije FROM SifarnikDokumenta
- WHERE SifarnikDokumenta.Naziv = '" . $naziv_dokumenta . "'";
- $nacinreg = '';
- $rez = $this->query($kveri);
- while ($red = $this->fetch($rez)) {
- $nacinreg = $red[0];
- }
- return $nacinreg;
- }
- /**
- * Vraca naziv klona datog dokumenta
- *
- * @param string $naziv_dokumenta
- * @return string
- */
- public function uzmi_naziv_klona($naziv_dokumenta) {
- $kveri = "SELECT UlazniIzlazni as klon FROM SifarnikDokumenta
- WHERE SifarnikDokumenta.Naziv = '" . $naziv_dokumenta . "'";
- $klon = '';
- $rez = $this->query($kveri);
- while ($red = $this->fetch($rez)) {
- $klon = $red[0];
- }
- return $klon;
- }
- /**
- * Vraca format datog polja
- *
- * @param string $imesegmenta
- * @param string $polje
- * @return string
- */
- public function uzmi_format_polja($imesegmenta, $polje) {
- $kveri = "SELECT PHPFormat as format from TipoviPodataka as t,RecnikPodataka as r WHERE r.Tabelavview='$imesegmenta' and r.Alijaspolja='$polje' and r.ID_TipoviPodataka=t.ID_TipoviPodataka";
- $format = '$st=$broj;';
- $rez = $this->query($kveri);
- while ($red = $this->fetch_object($rez)) {
- $format = $red->format;
- }
- return $format;
- }
- /**
- * Vraca formulu za dato polje
- * @param string $imesegmenta
- * @param string $polje
- * @return string
- */
- public function uzmi_formulu_polja($imesegmenta, $polje) {
- $kveri = "SELECT FormulaForme as formula from RecnikPodataka WHERE Tabelavview='$imesegmenta' and Alijaspolja='$polje'";
- $rez = $this->query($kveri);
- $red = $this->fetch_object($rez);
- return isset($red->formula) ? $red->formula : null;
- }
- /**
- * @todo COMMENT
- *
- * @param string $nazivdok
- * @param integer $iddok
- * @param array $parametri
- */
- public function azuriranje_vezanih($nazivdok, $iddok, $parametri) {
- // $sveok = true;
- switch ($nazivdok) {
- case "Artikli":
- $kveri = "select NazivArt as n from ArtikliTotali WITH(NOLOCK) "
- . " Where ID_ArtikliTotali=" . $iddok;
- $rezultat = $this->query($kveri);
- $kveri1 = "select NazivArtikla as n from Artikli WITH(NOLOCK) "
- . " Where ID_Artikli=" . $iddok;
- $rezultat1 = $this->query($kveri);
- $red = $this->fetch_object($rezultat);
- $StariNaziv = $red->n;
- $red1 = $this->fetch_object($rezultat1);
- $NoviNaziv = $red1->n;
- break;
- case "Komitenti":
- $kveri = "select NazivKom as s from KomitentiTotali WITH(NOLOCK) "
- . " Where ID_KomitentiTotali=" . $iddok;
- $rezultat = $this->query($kveri);
- $kveri1 = "select NazivKomitenta as n from Komitenti WITH(NOLOCK) "
- . " Where ID_Komitenti=" . $iddok;
- $rezultat1 = $this->query($kveri1);
- $red = $this->fetch_object($rezultat);
- $StariNaziv = $red->s;
- $red1 = $this->fetch_object($rezultat1);
- $NoviNaziv = $red1->n;
- break;
- case "Banka":
- $kveri = "select NazivRacuna as n from BankaStavkeview WITH(NOLOCK) "
- . " Where ID_BankaStavkeview=" . $iddok;
- $rezultat = $this->query($kveri);
- $red = $this->fetch_object($rezultat);
- $StariNaziv = $red->n;
- $NoviNaziv = $parametri['NazivRacuna']['sadrzaj'];
- break;
- case "Skladiste" :
- $kveri = "select NazivSkl as n from Skladiste WITH(NOLOCK) "
- . " Where ID_Skladiste=" . $iddok;
- $rezultat = $this->query($kveri);
- $red = $this->fetch_object($rezultat);
- $StariNaziv = $red->n;
- $NoviNaziv = $parametri['NazivSkl']['sadrzaj'];
- break;
- }
- if ($NoviNaziv != $StariNaziv) {
- $this->sp_azuriranje_vezanih($nazivdok, $iddok, $StariNaziv, $NoviNaziv);
- }
- }
- /**
- * @todo COMMENT
- *
- * @param integer $iddok
- * @return PDOStatement
- */
- public function komitenti_komercijalisti($iddok) {
- $kveri = '';
- $rsKomitent = "Select ID_Komitenti,ID_OdgovornoLice1 from Komitenti where ID_Komitenti=" . $iddok;
- $rezultat = $this->query($rsKomitent);
- $red = $this->fetch_object($rezultat);
- $datumFormat = date("d.m.y");
- $rsKomitentKom = "Select Datum,ID_OdgovornoLice1,ID_VezaKomitentKomercijalisti from VezaKomitentKomercijalisti Where ID_KomitentiView=" . $red->ID_Komitenti
- . " AND ID_OdgovornoLice1=" . $red->ID_OdgovornoLice1 . " order by datum desc, id_VezaKomitentKomercijalisti";
- $rezultat1 = $this->query($rsKomitentKom);
- $red1 = $this->fetch_object($rezultat1);
- if (empty($red1)) { // ne postoji ili komitent ili komercijalista u VezaKomitentKomercijalisti
- $rsKomitentKom = "Select Datum,ID_OdgovornoLice1,ID_VezaKomitentKomercijalisti from VezaKomitentKomercijalisti Where ID_KomitentiView=" . $red->ID_Komitenti
- . " order by datum desc, id_VezaKomitentKomercijalisti";
- $rezultat1 = $this->query($rsKomitentKom);
- $red1 = $this->fetch_object($rezultat1);
- if (empty($red1)) { // ne postoji komitent u ID_VezaKomitentKomercijalisti UNECEMO GA
- $kveri = " insert into VezaKomitentKomercijalisti(Datum, ID_KomitentiView, ID_OdgovornoLice1 )"
- . " values('" . $datumFormat . "', " . $red->ID_Komitenti . ", " . $red->ID_OdgovornoLice1 . ")";
- } else { // postoji Komitent
- if ($red->ID_OdgovornoLice1 != $red1->ID_OdgovornoLice1) {
- $kveri = " insert into VezaKomitentKomercijalisti(Datum, ID_KomitentiView, ID_OdgovornoLice1 )"
- . " values('" . $datumFormat . "', " . $red->ID_Komitenti . ", " . $red->ID_OdgovornoLice1 . ")";
- }
- }
- }
- if ($kveri != '') {
- $this->query($kveri);
- }
- return true;
- }
- /**
- * @todo COMMENT
- *
- * @param integer $iddok
- * @reutrns PDOStatement
- */
- public function artikli_porezi($iddok) {
- $kveri2 = '';
- $kveri = "Select ID_Artikli,ID_TarifaPoreza from Artikli WITH(NOLOCK) where ID_Artikli=" . $iddok;
- $rezultat1 = $this->query($kveri);
- $red = $this->fetch_object($rezultat1);
- $kveri1 = "Select ID_ArtikliView,ID_TarifaPoreza from ArtikliGrupaPoreza WITH(NOLOCK) Where ID_ArtikliView=" . $iddok
- . " AND ID_TarifaPoreza=" . $red->ID_TarifaPoreza;
- $rezultat = $this->query($kveri1);
- $red1 = $this->fetch_object($rezultat);
- if (empty($red1)) {
- $kveri1 = "Select ID_ArtikliView,ID_TarifaPoreza from ArtikliGrupaPoreza WITH(NOLOCK) Where ID_ArtikliView=" . $iddok;
- $rezultat = $this->query($kveri1);
- $red1 = $this->fetch_object($rezultat);
- if (empty($red1)) { // ne postoji artikal u ArtikliGrupaPoreza UBACUJEMO GA
- $kveri2 = "insert into ArtikliGrupaPoreza(DatumGrupe, ID_ArtikliView, ID_TarifaPoreza )"
- . " values('" . date("d.m.y") . "'," . $red->ID_Artikli . "," . $red->ID_TarifaPoreza . ")";
- } else { // postoji artikal u ArtikliGrupaPoreza
- if ($red->ID_TarifaPoreza != $red1->ID_TarifaPoreza) {
- $kveri2 = " insert into ArtikliGrupaPoreza(DatumGrupe, ID_ArtikliView, ID_TarifaPoreza )"
- . " values('" . "01.01." . date("y") . "', " . $red->ID_Artikli . ", "
- . $red->ID_TarifaPoreza . ")";
- }
- }
- }
- if ($kveri2 != '') {
- $this->query($kveri2);
- }
- return true;
- }
- /**
- * @todo COMMENT
- *
- * @param string $naziv_dokumenta
- * @param integer $iddok
- */
- public function azuriraj_ulazni_racun($naziv_dokumenta, $iddok) {
- // $sred = 1;
- $kveri = " SELECT ID_UlazniRacunCeo AS IdUR FROM KalkulacijaUf WITH(NOLOCK)"
- . " WHERE ID_DokumentaView=" . $iddok;
- $rez = $this->query($kveri);
- while ($red = $this->fetch($rez)) {
- // id racuna za koga je pravljena kalkulacija
- $kveri1 = "Select datumcarinjenja,ID_SifrarnikValuta from racun WITH(NOLOCK) where ID_DokumentaView =" . $red[0];
- $rez1 = $this->query($kveri1);
- while ($red1 = $this->fetch($rez1)) {
- $kveri2 = "Select srednji from kursnalista where datum='" . $red1[0] . "' And ID_ID_SifrarnikValuta =" . $red1[1];
- $rez2 = $this->query($kveri2);
- while ($red2 = $this->fetch($rez2)) {
- ////vraca nabavnu cenu na cenu dobavljaca i eliminise zavisne troskove dodate obrisanom kalkulacijom
- $kveri3 = "Update RacunStavke set NabavnaCena=(ProdajnaCena*((100-ProcenatRabata)/100))*"
- . sred . " where ID_DokumentaView= " . $red[0];
- $this->query($kveri3);
- }
- }
- $aa = strtoupper(substr($naziv_dokumenta, 0, 3));
- if ($aa == "PDV") {
- $this->sp_totali('KonacniUlazniRacun', $red[0]);
- } else {
- $this->sp_totali('UlazniRacun', $red[0]);
- }
- $this->sp_cene_i_stanje($red[0]);
- }
- }
- /**
- * Brise nalog glavne knjige za dati dokument
- *
- * @param integer $iddok
- * @return PDOStatement
- */
- public function brisanje_naloga_glavne_knjige($iddok) {
- $kveri = " Select KS.ID_DokumentZaKnj as IDDK from NalogGlavneKnjigeStavke as KS
- where KS.ID_DokumentaView=$iddok";
- $rez = $this->query($kveri);
- while ($red = $this->fetch($rez)) {
- //vracanje statusa dokumentima koji su bili u nalogu koji smo obrisali
- $kveri1 = "Update Dokumenta set proknjizeno='NijeProknjizeno' where Id_Dokumenta=" . $red[0];
- $sve_ok = $this->query($kveri1);
- //totali za dokumenta kojima je promenjen status
- // $this->sp_totali($imestabla, $red[0]);
- $this->sp_totali("", $red[0]);
- }
- // brisanje slogova glavne knjige
- $kveri1 = "delete from glavnaknjiga where ID_NalogGlavneKnjigeStavkePregledView=" . $iddok;
- $sve_ok = $this->query($kveri1);
- }
- /**
- * Vraca dato polje izvestaja
- *
- * @param string $naziv_izvestaj
- * @param string $naziv_polja
- * @return array
- */
- public function uzmi_polje_iz_izvestaja($naziv_izvestaj, $naziv_polja) {
- $kveri = "SELECT Uslov, TotalVSubTotal, UslovOperacija, TUD,PoljeSaDok FROM Izvestaji WHERE Izvestaj = '" . $naziv_izvestaj .
- "' AND Polje='" . $naziv_polja . "'";
- $data = array();
- $rez = $this->query($kveri);
- while ($red = $this->fetch($rez)) {
- $data ["uslov"] = $red[0];
- $data ["total"] = trim($red[1]);
- $data ["uslov_op"] = $red[2];
- $data ["TUD"] = $red[3];
- $data["PoljeSaDok"] = $red[4];
- }
- return $data;
- }
- public function uzmi_polje_iz_alijasa($naziv_izvestaj, $alijas_polja) {
- $kveri = "SELECT Polje FROM RecnikPodataka WHERE Dokument = '" . $naziv_izvestaj . "' AND AlijasPolja='" . $alijas_polja . "'";
- $data = array();
- $rez = $this->query($kveri);
- while ($red = $this->fetch($rez)) {
- $data ["Polje"] = $red[0];
- // $data ["total"] = trim($red[1]);
- // $data ["uslov_op"] = $red[2];
- // $data ["TUD"] = $red[3];
- // $data["PoljeSaDok"] = $red[4];
- }
- return $data;
- }
- /**
- * Vraca da li postoji naziv organizacije
- *
- * @param string $naziv_izvestaj
- * @return boolean
- */
- public function postoji_li_nazivorg($naziv_izvestaj) {
- $kveri = "SELECT Uslov, TotalVSubTotal, UslovOperacija, TUD,PoljeSaDok FROM Izvestaji WHERE Izvestaj = '" . $naziv_izvestaj . "' AND Uslov=4";
- $rez = $this->query($kveri);
- $red = $this->fetch($rez);
- return !empty($red);
- }
- /**
- * Vraca restrikciju za grid datog dokumenta, poziva se samo za izvestaje
- *
- * @param string $uslov_pocetni
- * @param string $dokument
- * @param string $tud
- * @return string
- */
- public function uzmi_restrikciju_za_grid($uslov_pocetni, $dokument, $tud) {
- $uslov = trim($uslov_pocetni);
- if ($tud == 0) {
- $sql = "SELECT restrikcije FROM recnikpodataka WHERE dokument=:dokument AND ltrim(rtrim(restrikcije)) <> '' AND restrikcije NOT LIKE '%BrDok%'";
- $sth = $this->prepare($sql);
- $sth->bindValue(':dokument', $dokument);
- } else {
- $sql = "SELECT restrikcije FROM recnikpodataka WHERE dokument=:dokument AND tud=:tud AND ltrim(rtrim(restrikcije)) <> '' AND restrikcije NOT LIKE '%BrDok%'";
- $sth = $this->prepare($sql);
- $sth->bindValue(':dokument', $dokument);
- $sth->bindValue(':tud', $tud);
- }
- $sth->execute();
- if ($this->postoji_li_nazivorg($dokument)) {
- if ($uslov === '') {
- $uslov = "NazivOrg='{$_SESSION['firma']}'";
- } else {
- $uslov .= " AND NazivOrg='{$_SESSION['firma']}'";
- }
- }
- $result = $sth->fetchAll(PDO::FETCH_ASSOC);
- foreach ($result as $row) {
- $restrikcija = $this->evaluiraj_restrikcije($row['restrikcije']);
- if ($uslov === '') {
- $uslov = $restrikcija;
- } else if ($restrikcija !== '') {
- $uslov .= ' AND ' . $restrikcija;
- }
- }
- return $uslov;
- }
- /**
- * U koloni restrikcije se u recniku podataka nalaze restrikcije
- * ili normalno ili u obliku USLOV::RESTRIKCIJA gde se onda evaluira uslov
- * pa ako je true onda se dodaje restrikcija
- *
- * @param string $restrikcije
- * @return string
- */
- public function evaluiraj_restrikcije($restrikcije) {
- $restrikcije_parts = explode('::', $restrikcije);
- if (count($restrikcije_parts) > 1) {
- $primeni_restrikciju = eval("return {$restrikcije_parts[0]};");
- if ($primeni_restrikciju) {
- return $restrikcije_parts[1];
- } else {
- return '';
- }
- }
- return $restrikcije;
- }
- /**
- * Vraca order by za datu tabelu u dokumentu
- *
- * @param string $naziv_dokumenta
- * @param integer $TUD
- * @return string
- */
- public function uzmi_order_by_iz_recnika($naziv_dokumenta, $TUD) {
- $kveri = "SELECT AlijasPolja as Polje, GGroupBy FROM RecnikPodataka WHERE Dokument = '$naziv_dokumenta'
- AND TUD= $TUD AND GGroupBy<>0 ORDER BY GGroupBy";
- $data = array();
- $rez = $this->query($kveri);
- while ($red = $this->fetch_Assoc($rez)) {
- $data[] = $red;
- }
- $response = "";
- $order_by = "";
- if (count($data) > 0) {
- $response = " ORDER BY ";
- foreach ($data as $d) {
- $smer = $d['GGroupBy'] > 0 ? ' ASC' : ' DESC';
- $order_by .= $d['Polje'] . $smer . ',';
- }
- $order_by = substr($order_by, 0, strlen($order_by) - 1);
- }
- return $response . $order_by;
- }
- /**
- * Vraca polja datog dokumenta i date tabele
- *
- * @param string $ime_dok
- * @param integer $tud
- * @return array
- */
- public function uzmi_polja_dokumenta($ime_dok, $tud = -1) {
- $where_tud = "";
- if ($tud != -1) {
- $where_tud = " and TUD=$tud ";
- }
- $kveri = "select ID_RecnikPodataka, TUD,TabIndex, AlijasPolja, Restrikcije,width,WidthKolone
- from RecnikPodataka WHERE Dokument='$ime_dok' $where_tud and (width > 0 or WidthKolone > 0
- or RecnikPodataka.ID_NAZIViNAFORMI=20 or RecnikPodataka.ID_NAZIViNAFORMI=25
- or alijaspolja like'IID%' or alijaspolja like 'ID_'+ AlijasTabele
- or (Izborno <> '' and alijaspolja like 'ID_'+ Izborno)) Order By TUD,TabIndex;";
- //log::sql($kveri);
- $rezultat = array();
- $brojac_polja = 0;
- $rez = $this->query($kveri);
- while ($red = $this->fetch_Assoc($rez)) {
- $rezultat[$brojac_polja] = $red;
- $brojac_polja++;
- }
- return $rezultat;
- }
- /**
- * Uzima zadato polje iz recnika podataka
- *
- * @param integer $id
- * @return array
- */
- public function uzmi_polje($id) {
- $kveri = "select n.srpski, " .
- "t.PHPFormat, r.ID_RecnikPodataka, r.Dokument, r.TabelaVView, r.TabIndex, r.Polje, r.AlijasPolja, r.Tabela," .
- "r.AlijasTabele, r.WidthKolone, r.width, r.vrh as WebTop , r.levo as WebLeft, r.levo, r.vrh, r.height, r.PostojiLabela, r.TUD," .
- " r.Izborno, r.StornoIUpdate, r.Smesti, r.ObavezanUnos, r.TotaliDaNe, r.KontiraSe, r.TotalVSubTotal," .
- " r.Restrikcije, r.Zoom, r.HelpID, r.GridVFlexGrid, r.OOrderBy, r.GGroupBy, r.ZavisiOd," .
- " r.JJoinTvV, r.FormulaForme,t.CSS + ' ' + r.DodatniCSS as CSS,t.DifoltZaIzvestaje,t.tip " .
- " FROM RecnikPodataka as r, NaziviNaFormi as n, TipoviPodataka as t" .
- " WHERE r.id_nazivinaformi=n.id_nazivinaformi and r.ID_TipoviPodataka=t.ID_TipoviPodataka and r.ID_RecnikPodataka=$id ";
- $rezultat = array();
- $ok = 0;
- $rez = $this->query($kveri);
- while ($red = $this->fetch_Assoc($rez)) {
- $rezultat = $red;
- $ok++;
- }
- if ($ok == 0) {
- return "eee_empty_field";
- } else {
- return $rezultat;
- }
- }
- /**
- * @todo COMMENT
- *
- * @param string $dok
- * @param string $grid
- * @return integer
- */
- public function uzmi_broj_vidljivih($dok, $grid) {
- $kveri = "SELECT count(*) as brojVidljivih FROM RecnikPodataka " .
- "WHERE WidthKolone>0 AND Dokument='$dok' AND TabelaVView='$grid'";
- $broj_vidljivih = 0;
- $rez = $this->query($kveri);
- while ($red = $this->fetch($rez)) {
- $broj_vidljivih = (int) $red[0];
- }
- return $broj_vidljivih;
- }
- /**
- * Vraca prvo vidljivo polje iz recnika podataka za dati dokument i grid
- *
- * @param string $dok
- * @param string $grid
- * @return array
- */
- public function uzmi_prvo_vidljivo_polje($dok, $grid) {
- $prvopolje = array();
- $rb = 0;
- $kveri = "SELECT ID_NaziviNaFormi ,AlijasPolja as prvopolje FROM RecnikPodataka WHERE WidthKolone>0 AND Dokument='$dok' AND TabelaVView='$grid'" .
- " AND Tabindex=(Select min(tabindex) from RecnikPodataka WHERE WidthKolone>0 AND Dokument='$dok' AND TabelaVView='$grid');";
- $rez = $this->query($kveri);
- while ($red = $this->fetch_object($rez)) {
- if ($red->ID_NaziviNaFormi == 20)
- $rb = 1;
- $prvopolje["prvopolje"] = $red->prvopolje;
- $prvopolje["rb"] = $rb;
- }
- return $prvopolje;
- }
- /**
- * @todo COMMENT
- *
- * @param string $dok
- * @param string $grid
- * @return array
- */
- public function uzmi_strukt_grida($dok, $grid) {
- $kveri = "SELECT distinct webBrojRedova as MaxHeight, levo as WebLeft, vrh as WebTop, Width FROM Upiti " .
- "WHERE NazivDokumenta='" . $dok . "' AND Ime='" . "ggrr" . $grid . "';";
- $struktura = array();
- $rez = $this->query($kveri);
- while ($red = $this->fetch($rez)) {
- $struktura["redova"] = $red[0];
- $struktura["left"] = $red[1];
- $struktura["top"] = $red[2];
- $struktura["width"] = $red[3];
- }
- return empty($struktura) ? 0 : $struktura;
- }
- /**
- * Kreira broj dokumenta
- *
- * @param string $naziv_dok
- * @param integer $id_dok_stablo
- * @param string $datum
- * @param integer $id_org_str
- * @param integer $id_rad
- * @return string
- */
- public function sp_kreiraj_broj($naziv_dok, $id_dok_stablo, $datum, $id_org_str, $id_rad) {
- $sifra_rad = $this->uzmi_sifru_rad($id_rad);
- $veza = $this->get_link();
- $stmt = $veza->prepare('{call KreirajBroj(@Dokument=:dok,@dtm=:dat, @IdOrg=:idorg, ' .
- '@idke=:idke, @IdDokStablo=:dok_stablo, @BrojDok=:broj_dok)}');
- $br_dok = ' ';
- $stmt->bindParam('dok', $naziv_dok, PDO::PARAM_STR);
- $stmt->bindParam('dat', $datum, PDO::PARAM_STR);
- $stmt->bindParam('idorg', $id_org_str, PDO::PARAM_INT);
- $stmt->bindParam('idke', $sifra_rad, PDO::PARAM_STR);
- $stmt->bindParam('dok_stablo', $id_dok_stablo, PDO::PARAM_INT);
- $stmt->bindParam('broj_dok', $br_dok, PDO::PARAM_STR | PDO::PARAM_INPUT_OUTPUT, 1024);
- $stmt->execute();
- return $br_dok;
- }
- /**
- * Stornira dati dokument
- *
- * @param string $naziv_dok
- * @param integer $id_dokp
- * @param integer $id_doks
- * @return boolean
- */
- public function sp_storno_dokumenta($naziv_dok, $id_dokp, $id_doks) {
- $veza = $this->get_link();
- $stmt = $veza->prepare('{call StornoDokumenta(@NAZIVDOKUMENTA=:nazivDok,@ID_DOKUMENTAVIEWPRETH=:idp,@ID_DOKUMENTAVIEWSLEDB=:ids)}');
- $stmt->bindParam('nazivDok', $naziv_dok, PDO::PARAM_STR);
- $stmt->bindParam('idp', $id_dokp, PDO::PARAM_INT);
- $stmt->bindParam('ids', $id_doks, PDO::PARAM_INT);
- return $stmt->execute();
- }
- /**
- * Izvodi totale za dati dokument
- *
- * @param string $naziv_dok
- * @param integer $id_dok
- * @return boolean
- */
- public function sp_totali($naziv_dok, $id_dok) {
- $veza = $this->get_link();
- $stmt = $veza->prepare('{call TotaliZaDokument(@NazivDokumenta=:nazivDok,@IdDokument=:id)}');
- $stmt->bindParam('nazivDok', $naziv_dok, PDO::PARAM_STR);
- $stmt->bindParam('id', $id_dok, PDO::PARAM_INT);
- return $stmt->execute();
- }
- /**
- * @todo COMMENT
- *
- * @param integer $godinaDatuma
- * @return boolean
- */
- public function sp_popuniTimeByDay($godinaDatuma) {
- $veza = $this->get_link();
- $stmt = $veza->prepare('{call PopuniTimeByDay(@Godina=:godina)}');
- $stmt->bindParam('godina', $godinaDatuma, PDO::PARAM_INT);
- return $stmt->execute();
- }
- /**
- * @todo COMMENT
- *
- * @param string $naziv_dok
- * @param string $br_dok
- * @param integer $id_dok
- * @return boolean
- */
- public function sp_BrutoBilans($naziv_dok, $br_dok, $id_dok) {
- $veza = $this->get_link();
- $ds = $veza->prepare('{call BrutoBilans(@DDokument=:nazivDok,@BrDok=:brDok,@IdDokument=:id)}');
- $ds->bindParam('nazivDok', $naziv_dok, PDO::PARAM_STR);
- $ds->bindParam('brDok', $br_dok, PDO::PARAM_STR);
- $ds->bindParam('id', $id_dok, PDO::PARAM_INT);
- return $ds->execute();
- }
- /**
- * @todo COMMENT
- *
- * @param string $naziv_dok
- * @param string $br_dok
- * @param integer $id_dok
- * @return boolean
- */
- public function sp_BrutoBilansSimulacija($naziv_dok, $br_dok, $id_dok) {
- $veza = $this->get_link();
- $stmt = $veza->prepare('{call BrutoBilansSimulacija(@DDokument=:nazivDok,@BrDok=:brDok,@IdDokView=:id)}');
- $stmt->bindParam('nazivDok', $naziv_dok, PDO::PARAM_STR);
- $stmt->bindParam('brDok', $br_dok, PDO::PARAM_STR);
- $stmt->bindParam('id', $id_dok, PDO::PARAM_INT);
- return $stmt->execute();
- }
- /**
- * @todo COMMENT
- *
- * @param string $naziv_dok
- * @param integer $id_dok
- * @param integer $snaziv
- * @param integer $nnaziv
- * @return boolean
- */
- public function sp_azuriranje_vezanih($naziv_dok, $id_dok, $snaziv, $nnaziv) {
- $veza = $this->get_link();
- $stmt = $veza->prepare('{call PlusAzuriranjeVezanih(@NazivDokumenta=:nazivDok,@IdDokument=:id,@StariNaziv=:snaziv,@NoviNaziv=:nnaziv)}');
- $stmt->bindParam('nazivDok', $naziv_dok, PDO::PARAM_STR);
- $stmt->bindParam('id', $id_dok, PDO::PARAM_INT);
- $stmt->bindParam('snaziv', $snaziv, PDO::PARAM_INT);
- $stmt->bindParam('nnaziv', $nnaziv, PDO::PARAM_INT);
- return $stmt->execute();
- }
- /**
- * @todo COMMENT
- *
- * @param integer $id_dok
- * @return boolean
- */
- public function sp_stanje_lot($id_dok) {
- $veza = $this->get_link();
- $stmt = $veza->prepare('{call StanjeRobePoLotu(@IdDokView=:id)}');
- $stmt->bindParam('id', $id_dok, PDO::PARAM_INT);
- return $stmt->execute();
- }
- /**
- * Poziva store proceduru srediSifrarnik
- *
- * @param string $stab
- */
- public function sp_sredi_sifre($stab) {
- $veza = $this->get_link();
- $stmt = $veza->prepare('{call SrediSifrarnik(@Stab=:stab)}');
- $stmt->bindParam('stab', $stab, PDO::PARAM_STR);
- return $stmt->execute();
- }
- /**
- * @todo COMMENT
- *
- * @param integer DatumStanja
- * @return boolean
- */
- public function sp_uporednostanjerobe($datum) {
- $veza = $this->get_link();
- $stmt = $veza->prepare('{call UporednoStanjeRobe(@DatumStanja=:dat)}');
- $stmt->bindParam('dat', $datum, PDO::PARAM_STR);
- return $stmt->execute();
- }
- /**
- * @todo COMMENT
- *
- * @return boolean
- */
- public function sp_azurirajdospeca() {
- $veza = $this->get_link();
- $stmt = $veza->prepare('{call AzurirajDospeca()}');
- return $stmt->execute();
- }
- /**
- * @todo COMMENT
- *
- * @param integer $id_dok
- * @return boolean
- */
- public function sp_cene_i_stanje($id_dok) {
- $veza = $this->get_link();
- $stmt = $veza->prepare('{call CeneArtikalaPoSkladistimaIStanje(@IdDokView=:id)}');
- $stmt->bindParam('id', $id_dok, PDO::PARAM_INT);
- return $stmt->execute();
- }
- public function sp_transakcije_za_knjizenje($id_reda, $id_dok) {
- $veza = $this->get_link();
- $stmt = $veza->prepare('{call TransakcijeZaKnjizenje(@IdReda=:idr,@IdDokView=:idd)}');
- $stmt->bindParam('idd', $id_dok, PDO::PARAM_INT);
- $stmt->bindParam('idr', $id_reda, PDO::PARAM_INT);
- return $stmt->execute();
- }
- /**
- * @todo COMMENT
- *
- * @param integer $id_dok
- * @return boolean
- */
- public function sp_cene_i_promet($id_dok) {
- $veza = $this->get_link();
- $stmt = $veza->prepare('{call AzurirajCenuSirovinaZaPromet(@IdDokView=:id)}');
- $stmt->bindParam('id', $id_dok, PDO::PARAM_INT);
- return $stmt->execute();
- }
- /**
- * @todo COMMENT
- *
- * @param string $naziv_dok
- * @param integer $id_dok
- * @return boolean
- */
- public function sp_proverastanjalot($naziv_dok, $id_dok) {
- $veza = $this->get_link();
- $stmt = $veza->prepare('{call ProveraStanjaLotMagPolj(@IdDokView=:id,@Dokument:dok}');
- $stmt->bindParam('id', $id_dok, PDO::PARAM_INT);
- $stmt->bindParam('dok', $naziv_dok, PDO::PARAM_INT);
- return $stmt->execute();
- }
- /**
- * @todo COMMENT
- *
- * @param string $naziv_dok_preth
- * @param string $naziv_dok_sledb
- * @param integer $id_dok_preth
- * @param integer $id_dok_sledb
- * @return string
- */
- public function sp_povucisapredhodnika($naziv_dok_preth, $naziv_dok_sledb, $id_dok_preth, $id_dok_sledb) {
- $stmt = $this->conn->prepare('{call PrethSled(@PRETH=:preth,@SLEDB=:sledb,@ID_DOKUMENTAVIEWPRETH=:idpreth,@ID_DOKUMENTAVIEWSLEDB=:idsledb)}');
- $stmt->bindParam('preth', $naziv_dok_preth, PDO::PARAM_STR);
- $stmt->bindParam('sledb', $naziv_dok_sledb, PDO::PARAM_STR);
- $stmt->bindParam('idpreth', $id_dok_preth, PDO::PARAM_INT);
- $stmt->bindParam('idsledb', $id_dok_sledb, PDO::PARAM_INT);
- return $stmt->execute();
- }
- public function sp_proverastanja($naziv_dok, $id_dok) {
- $veza = $this->get_link();
- if (strpos($naziv_dok, "Lot") != false) {
- $stmt = $veza->prepare('{call ProveraStanjaLotMagPolj(@IdDokView=:id,@Dokument=:dok)}');
- $stmt->bindParam('id', $id_dok, PDO::PARAM_INT);
- $stmt->bindParam('dok', $naziv_dok, PDO::PARAM_STR);
- $stmt->execute();
- $PrStanja = "select dbo.LotProveraStanjaF() as Stanje";
- } else {
- $stmt = $veza->prepare('{call ProveraStanjaP(@IdDokView=:id,@Dokument=:dok)}');
- $stmt->bindParam('id', $id_dok, PDO::PARAM_INT);
- $stmt->bindParam('dok', $naziv_dok, PDO::PARAM_STR);
- $stmt->execute();
- $PrStanja = "select dbo.ProveraStanjaF() as Stanje";
- }
- $rez = $this->query($PrStanja);
- $red = $this->fetch_object($rez);
- return $red->Stanje;
- }
- //
- // public function sp_stanje_robe_lot($id_dok) {
- // if ($id_dok > 0) {
- // $veza = $this->get_link();
- // $stmt = $veza->prepare('{call StanjeRobePoLotu(@IdDokView=:id)}');
- // $stmt->bindParam('id', $id_dok, PDO::PARAM_INT);
- // $stmt->execute();
- // }
- // }
- ////////////////////////////////////////////////////
- ////////////STARA BAZA//////////////////////////////
- // public function sp_kreiraj_broj_mssql($naziv_dok, $datum, $id_org_str, $id_rad) {
- //
- // //$this->open();
- // $id_dok_stablo = $this->uzmi_id_dok_stablo($naziv_dok);
- // // Create a new stored prodecure
- // $veza = $this->get_link();
- // $stmt = mssql_init('KreirajBroj', $veza);
- //
- // $br_dok = ' ';
- //// Bind the field names
- // mssql_bind($stmt, '@Dokument', $naziv_dok, SQLVARCHAR, false, false, 60);
- // mssql_bind($stmt, '@dtm', $datum, SQLVARCHAR, false, false, 60);
- // mssql_bind($stmt, '@IdOrg', $id_org_str, SQLINT4, false, false, 3);
- // mssql_bind($stmt, '@idke', $id_rad, SQLINT4, false, false, 3);
- // mssql_bind($stmt, '@IdDokStablo', $id_dok_stablo, SQLINT4, false, false, 3);
- // mssql_bind($stmt, '@BrojDok', $br_dok, SQLVARCHAR, true, false, 100);
- // mssql_execute($stmt);
- // mssql_free_statement($stmt);
- // unset($veza);
- // return $br_dok;
- // }
- // public function sp_totali_mssql($naziv_dok, $id_dok) {
- //
- // $veza = $this->get_link();
- // // Create a new stored prodecure
- // $stmt = mssql_init('TotaliZaDokument', $veza);
- // // Bind the field names
- // mssql_bind($stmt, '@NazivDokumenta', $naziv_dok, SQLVARCHAR, false, false, 100);
- // mssql_bind($stmt, '@IdDokument', $id_dok, SQLINT4, false, false, 20);
- //
- // // Execute
- // mssql_execute($stmt);
- // // Free statement
- // mssql_free_statement($stmt);
- // //echo $veza;
- // unset($veza);
- // }
- // public function sp_stanje_robe_lot_mssql($id_dok) {
- // $veza = $this->get_link();
- // // Create a new stored prodecure
- // $stmt = mssql_init('StanjeRobePoLotu', $veza);
- // // Bind the field names
- // mssql_bind($stmt, '@IdDokView', $id_dok, SQLINT4, false, false, 20);
- //
- // // Execute
- // mssql_execute($stmt);
- //
- // // Free statement
- // mssql_free_statement($stmt);
- // //echo $veza;
- // unset($veza);
- // }
- /**
- * @todo COMMENT
- *
- * @param string $preth_dok
- * @param string $naziv_dok
- * @param string $br_dok
- * @param string $datum
- * @param integer $id_org_str
- * @param integer $id_rad
- * @param string $opis
- * @return PDOStatement
- * @throws Exception
- */
- function upis_u_dokumenta($preth_dok, $naziv_dok, $br_dok, $datum, $id_org_str, $id_rad, $opis) {
- /////////////////////////////////////////////////////////////
- ///INSERT u tabelu Dokumenta
- //
- //ID_Dokumenta auto
- //ID_KadrovskaEvidencija $id_rad
- //ID_Prethodni $preth_dok
- //ID_DokumentaStablo tabela DokumentaStablo na osnovu $naziv_dok
- //BrojDokumenta $br_dok
- //Datum $datum
- //Opis $opis ($naziv + $datum)
- //Proknjizeno NeKnjiziSe || Proknjizen || NijeProknjizeno
- //UUser ID_KadrovskaEvidencija, $id_rad
- //TTime auto
- //RedniBroj $redni_broj (drugi broj iz BrojDokumenta)
- //ID_LikvidacijaDokumenta $id_likv_dok
- //ID_OrganizacionaStrukturaView $id_org_str
- //MesecPoreza auto = NULL
- ///////////////////////////////////////////////////////////////
- //$this->open();
- $id_dok_stablo = $this->uzmi_id_dok_stablo("Dokumenta", $naziv_dok);
- //echo "STABLO $id_dok_stablo-------------------";
- $mesecporeza = $this->popuni_mesecporeza($datum);
- //provjera da li se dok knjizi
- $proknjizeno = '';
- $rezultat = $this->query("SELECT KnjiziSe FROM SifarnikDokumenta where Naziv='$naziv_dok';");
- $red = $this->fetch($rezultat);
- // {
- // $proknjizeno=$red[0];
- // }
- if ($red[0] == 'N') {
- $proknjizeno = 'NeKnjiziSe';
- } elseif ($red[0] == 'Y') {
- $proknjizeno = 'NijeProknjizeno';
- }
- ////////////////////////////
- //redni broj dokumenta - drugi broj iz 'broj dokumenta'
- $s1 = explode('/', $br_dok);
- $s2 = explode('-', $s1[0]);
- $redni_broj = $s2[1];
- ////////////////////////////////
- //uzima ID_LikvidacijaDokumenta
- $id_likv_dok = 1;
- /////////////////////////////
- if ($preth_dok == '') {
- $preth_dok = 1;
- }
- //????????????
- // MOZDA ovdje da pocinje funkcija, a OVO iznad prebacit u klasu dokument
- //function upis_u_dokumenta($id_rad, $preth_dok, $id_dok_stablo, $br_dok, $datum, $opis, ){
- //UPIS dokumenta u tabelu Dokumenta
- $rsu = "INSERT INTO Dokumenta(ID_KadrovskaEvidencija, ID_Predhodni, ID_DokumentaStablo,
- BrojDokumenta, Datum, Opis, Proknjizeno, UUser, RedniBroj, ID_LikvidacijaDokumenta,
- ID_OrganizacionaStrukturaView,MesecPoreza) VALUES($id_rad, $preth_dok, $id_dok_stablo, '$br_dok', '$datum',
- '$opis', '$proknjizeno', $id_rad, $redni_broj, $id_likv_dok, $id_org_str,$mesecporeza)";
- $sve_ok = $this->query($rsu);
- if (!$sve_ok) {
- throw new Exception("Greska upis_u_dokumenta!");
- }
- return $sve_ok;
- }
- /**
- * Provera da li se dokument knjizi
- *
- * @param string $naziv_dok
- * @return string
- */
- function popuni_proknjizeno($naziv_dok) {
- $proknjizeno = '';
- $rezultat = $this->query("SELECT KnjiziSe FROM SifarnikDokumenta where Naziv='$naziv_dok';");
- while ($red = $this->fetch($rezultat)) {
- $proknjizeno = $red[0];
- }
- if ($proknjizeno == 'N') {
- $proknjizeno = 'NeKnjiziSe';
- } else if ($proknjizeno == 'Y') {
- $proknjizeno = 'NijeProknjizeno';
- }
- return $proknjizeno;
- }
- /**
- * Popunjava mesec poreza
- *
- * @param string $pDatum
- * @return integer
- */
- function popuni_mesecporeza($pDatum) {
- if ($_SESSION['firma'] == "Leotar") {
- $DanPoreza = 10;
- } else {
- $DanPoreza = 15;
- }
- $pttime = time();
- // $pttime = strtotime($pttime);
- $pDatum = strtotime($pDatum);
- $mespDatum = date('m', $pDatum);
- $mespttime = date("m", $pttime);
- $danpttime = date('d', $pttime);
- $pmesec = intval($mespttime);
- if ($mespDatum <> $mespttime && $danpttime <= $DanPoreza) {
- $pmesec = $pmesec - 1;
- }
- return $pmesec === 0 ? 12 : $pmesec;
- }
- /**
- * Vraca id dokumenta stablo
- *
- * @param string $naziv_stabla
- * @param string $naziv_dok
- * @return integer
- */
- function uzmi_id_dok_stablo($naziv_stabla, $naziv_dok) {
- $id_dok_stablo = '';
- $rezultat = $this->query("SELECT ID_" . $naziv_stabla . "Stablo FROM " . $naziv_stabla . "Stablo where Naziv='$naziv_dok';");
- while ($red = $this->fetch($rezultat)) {
- $id_dok_stablo = $red[0];
- }
- if ($id_dok_stablo == '') {
- throw new Exception("Prazno id dokument stablo! Uzmi id dok stablo");
- }
- return $id_dok_stablo;
- }
- /**
- * Uzima naziv grupe
- *
- * @param string $naziv_stabla
- * @param integer $id_stablo
- * @return string
- */
- function uzmi_naziv_grupe($naziv_stabla, $id_stablo) {
- $naziv = '';
- $rezultat = $this->query("SELECT ID_" . $naziv_stabla . "Stablo, Naziv FROM " . $naziv_stabla . "Stablo where ID_" . $naziv_stabla . "Stablo=$id_stablo;");
- while ($red = $this->fetch_Assoc($rezultat)) {
- $naziv = $red['Naziv'];
- }
- return $naziv === '' ? false : naziv;
- }
- /**
- * Uzima naziv dokumenta
- *
- * @param integer $id_dok_stablo
- * @return string
- */
- function uzmi_naziv_dok($id_dok_stablo) {
- $naziv = '';
- $rezultat = $this->query("SELECT ID_DokumentaStablo, Naziv FROM DokumentaStablo where ID_DokumentaStablo=$id_dok_stablo;");
- while ($red = $this->fetch_Assoc($rezultat)) {
- $naziv = $red['Naziv'];
- }
- if ($naziv === '') {
- throw new Exception("Prazan naziv! Uzmi naziv dok");
- }
- return $naziv;
- }
- /**
- * @todo COMMENT
- *
- * @param integer $id_radnika
- * @return array
- */
- function user_data($id_radnika) {
- $ok = FALSE;
- $tmp = array();
- $tmp2 = array();
- $rezultat = $this->query("SELECT ID_KadrovskaEvidencija, SifRadnika, Ime,
- Prezime, Suser, Pass FROM KadrovskaEvidencija where ID_KadrovskaEvidencija=$id_radnika");
- if ($rezultat !== false) {
- while ($red = $this->fetch_Assoc($rezultat)) {
- $tmp = $red;
- $ok = true;
- }
- $i = 0;
- $rezultat = $this->query("SELECT ID_OrganizacionaStruktura FROM KadroviIOrganizacionaStruktura where ID_KadrovskaEvidencija=$id_radnika");
- while ($red = $this->fetch($rezultat)) {
- $tmp2[$i] = $red[0];
- $i++;
- }
- $tmp['org_str'] = $tmp2;
- return $ok && $i > 0 ? $tmp : 0;
- }
- }
- /**
- * Vrsi update sifre radnika
- *
- * @param integer $id
- * @param string $pass
- * @return PDOStatement
- */
- function user_pass_update($id, $pass) {
- return $this->query("update KadrovskaEvidencija set Pass='$pass' where ID_KadrovskaEvidencija=$id");
- }
- /**
- * Vraca sifru radnik
- *
- * @param integer $id_radnika
- * @return string
- */
- function uzmi_sifru_rad($id_radnika) {
- $rezultat = $this->query("SELECT SifRadnika FROM KadrovskaEvidencija where ID_KadrovskaEvidencija=$id_radnika;");
- while ($red = $this->fetch($rezultat)) {
- $sifra = $red[0];
- }
- return $sifra;
- }
- /**
- * Vraca id organizacione jedinice radnika
- *
- * @param integer $id_radnika
- * @param integer
- */
- function uzmi_idorg_rad($id_radnika) {
- $rezultat = $this->query("SELECT ID_OrganizacionaStruktura FROM KadroviiOrganizacionaStrukturaStavkeView where ID_KadrovskaEvidencija=$id_radnika AND ID_Organizacionastrukturastablo=" . $_SESSION['idfirma']);
- while ($red = $this->fetch($rezultat)) {
- $sifra = $red[0];
- }
- return (int) $sifra;
- }
- /**
- * Vraca id poslednjeg unetog sloga
- *
- * @param string $naziv_dok
- * @return integer
- */
- function uzmi_max_id_dok($naziv_dok) {
- $id_dok = '';
- $rezultat = $this->query("SELECT max(ID_" . $naziv_dok . ") as m FROM " . $naziv_dok);
- while ($red = $this->fetch($rezultat)) {
- $id_dok = $red[0];
- }
- if ($id_dok === '') {
- throw new Exception("Prazan id dok! Uzmi max id dok!");
- }
- return $id_dok;
- }
- /**
- * Vraca status knjizenja dokumenta
- *
- * @param string $broj_dok
- * @return integer
- */
- function uzmi_status_dok($iddok) {// $broj_dok = xxx-xx-xxxx/xxxx-xx
- $sql = 'SELECT ID_Proknjizeno FROM DokumentaTotali where ID_DokumentaTotali=:iddok';
- $sth = $this->prepare($sql);
- $sth->bindParam(':iddok', $iddok);
- $sth->execute();
- $result = (int) $sth->fetch(PDO::FETCH_COLUMN);
- if (!$result) {
- return false;
- }
- switch ($result) {
- case 2:
- $status = 1; // proknjizen
- break;
- case 10:
- $status = 2; // ne knjizi se
- break;
- default:
- $status = 3; //nije proknjizeno
- break;
- }
- return $status;
- }
- /**
- * Vraca id datog dokumenta
- *
- * @param string $broj_dok
- * @return integer
- */
- function uzmi_id_dok($broj_dok) {// $broj_dok = xxx-xx-xxxx/xxxx-xx
- $id_dok = '';
- $rezultat = $this->query("SELECT ID_Dokumenta FROM Dokumenta where BrojDokumenta='$broj_dok';");
- while ($red = $this->fetch($rezultat)) {
- $id_dok = $red[0];
- }
- return $id_dok === '' ? false : trim($id_dok);
- }
- /**
- * Vraca broj dokumenta za uneti id
- *
- * @param integer $id_dok
- * @return string
- */
- function uzmi_broj_dok($id_dok) {// $broj_dok = xxx-xx-xxxx/xxxx-xx
- $broj_dok = '';
- $rezultat = $this->query("SELECT BrojDokumenta FROM Dokumenta where ID_Dokumenta=$id_dok;");
- while ($red = $this->fetch($rezultat)) {
- $broj_dok = $red[0];
- }
- if ($broj_dok === '') {
- throw new Exception("Prazan broj dok! Uzmi broj dok!");
- }
- return trim($broj_dok);
- }
- /**
- * @todo COMMENT
- *
- * @param integer $iddok
- * @return integer
- */
- public function kalkulacija_vezana_za_racun($iddok) {
- $kveri = " SELECT Dokument as DK,BrDok as BD,ID_DokumentaView as IDK "
- . " FROM KalkulacijaUf as r WITH (NOLOCK),Dokumentatotali as d WITH (NOLOCK)"
- . " WHERE d.ID_Dokumentatotali=r.ID_DokumentaView and r.ID_UlazniRacunceo=" . $iddok;
- $rezultat = $this->query($kveri);
- if ($rezultat == false) {
- return(1);
- }
- $idkalk = 1;
- while ($red = $this->fetch($rezultat)) {
- //postoji kalkulacija vezana za ulazni racun pa ponovo zovemo raspored troskova i totale za kalkulaciju
- $idkalk = $red[2];
- }
- return $idkalk;
- }
- /**
- * @todo COMMENT
- *
- * @param string $naziv_dok
- * @param array $data
- * @param string $imestabla
- * @param integer $iid
- * @return PDOStatement
- */
- public function storno_dokumenta($naziv_dok, $data, $id_dok_stablo, $imestabla, $iid, $datum_dok) {
- $sve_ok = true;
- $this->beginTransaction();
- $broj_dokumenta = $this->uzmi_broj_dok($iid);
- // menjamo broj odabranog dokumenta koji zalimo stornirati
- $rsm = "update Dokumenta set BrojDokumenta=BrojDokumenta+'/S' where ID_Dokumenta =" . $iid;
- $this->query($rsm);
- $rezultat = $this->query("SELECT Upit,tabela,ime FROM Upiti where NazivDokumenta= 'Dokumenta' AND Ime like 'uuu%'");
- if ($rezultat == false) {
- return false;
- }
- while ($red = $this->fetch($rezultat)) {
- $select = $red[0];
- $tabela = $red[1];
- $upit = str_replace('Uuu', '', $red[2]);
- if (sizeof($data) == 0 || $tabela == '' || $select == '') {
- return 'false';
- }
- $insert = "INSERT INTO Dokumenta (";
- $insert2 = " VALUES("; // za stornirani dokument
- $insert3 = " VALUES("; // za prazan dokunent
- $select = trim($select);
- $select = substr($select, 7, strlen($select) - 7); //vraca string bez SELECT
- $select = stristr($select, 'from', true); //vraca sve prije from
- $polja = explode(',', $select); //vraca sva polja iz originalne select naredbe
- $id_rad = $_SESSION['idke'];
- $id_org_str = $_SESSION['idorg'];
- $insert = $insert . 'ID_DokumentaStablo' . ",";
- $insert2 = $insert2 . $id_dok_stablo . ",";
- $insert3 = $insert3 . $id_dok_stablo . ",";
- foreach ($polja as $p) {
- $p = trim($p);
- $nasao = true;
- switch ($p) {
- case "Datum":
- $insert .= $p . ",";
- $insert2 .="'" . $datum_dok . "',";
- $insert3 .="'" . $datum_dok . "',";
- break;
- case "ID_Predhodni":
- break;
- case "ID_LikvidacijaDokumenta":
- break;
- case "UUser":
- $insert .= $p . ",";
- $insert2 .= $_SESSION[idke] . ",";
- $insert3 .= $_SESSION[idke] . ",";
- break;
- case "ID_DokumentaView":
- $insert .= $p . ",";
- $insert2 .= $iddok . ",";
- $insert3 .= $iddok . ",";
- break;
- case "ID_KadrovskaEvidencija":
- $insert .= $p . ",";
- $insert2 .= $id_rad . ",";
- $insert3 .= $id_rad . ",";
- break;
- case "ID_OrganizacionaStrukturaView":
- $insert .= $p . ",";
- $polje_podaci = $data->getPoljePodaci($p, $tabela);
- $id_org_str = $polje_podaci['sadrzaj'];
- $insert2 .= $id_org_str . ",";
- $insert3 .= $id_org_str . ",";
- break;
- case "BrojDokumenta":
- $insert .= $p . ",";
- $insert2 .= "'" . $broj_dokumenta . "/SI',";
- $insert3 .= "'" . $broj_dokumenta . "',";
- break;
- case "RedniBroj":
- $s1 = explode('/', $broj_dokumenta);
- $s2 = explode('-', $s1[0]);
- $redni_broj = $s2[1];
- $insert = $insert . $p . ",";
- $insert2 .= $redni_broj . ",";
- $insert3 .= $redni_broj . ",";
- break;
- case "Proknjizeno":
- $insert .= $p . ",";
- $insert2 .= "'NijeProknjizeno',";
- $insert3 .= "'NijeProknjizeno',";
- break;
- case "MesecPoreza":
- $mesecporeza = $this->popuni_mesecporeza($datum_dok);
- $insert .= $p . ",";
- $insert2 .= $mesecporeza . ",";
- $insert3 .= $mesecporeza . ",";
- break;
- default:
- $nasao = false;
- break;
- }
- if ($nasao) {
- $brojac_polja++;
- }
- if (!$nasao) { // AKO NIJE NI JEDNO OD IZNAD POMENUTIH POLJA
- if (strpos($p, 'ID_') === 0) { //jeste ID_Polje
- $polje_podaci = $data->getAlijasPodaci($p);
- } else { // nije ID_polje
- $polje_podaci = $data->getPoljePodaci($p, $tabela);
- }
- if (count($polje_podaci) > 0) {
- $value = $polje_podaci['sadrzaj'];
- $mupit = $polje_podaci['tvview'];
- if ($upit == $mupit && $value != "" && $p != "ID_DokumentaView") {
- $insert .= $p . ",";
- $insert2 .= "'" . $value . "',";
- $insert3 .= "'" . $value . "',";
- }
- }
- }// nije nasao
- }//foreach polja}
- }
- $insert = substr($insert, 0, strlen($insert) - 1); //ima zarez viska
- $insert = $insert . ")";
- $insert2 = substr($insert2, 0, strlen($insert2) - 1); //ima zarez viska
- $insert2 = $insert2 . ")";
- $insert3 = substr($insert3, 0, strlen($insert3) - 1); //ima zarez viska
- $insert3 = $insert3 . ")";
- $iinsert = $insert . $insert2;
- // upisujemo dokument za storno
- $this->query($iinsert);
- // IDENT DOKUMENTA KOJI CEMO PREDATI STOR PROCEDURI ZA POPUNJAVANJE STORNA
- $aa = $broj_dokumenta . "/SI";
- $IdSled = $this->uzmi_id_dok($aa);
- // upisujemo prazan slog koji cemo popuniti ispravnim vrednostima
- $iinsert = $insert . $insert3;
- $sve_ok = $this->query($iinsert);
- $IdPrazan = $this->uzmi_id_dok($broj_dokumenta);
- //ZAVRSAVANJE OPERACIJE STORNO DOKUMENTA
- $this->sp_totali('Dokumenta', $iid);
- $this->sp_totali('Dokumenta', $IdSled);
- $this->sp_totali('Dokumenta', $IdPrazan);
- // UPISUJEMO STORNO DOKUMENT U PRIPADAJUCE TABELE
- $this->sp_storno_dokumenta($naziv_dok, $iid, $IdSled);
- $this->sp_totali($naziv_dok, $iid);
- $this->sp_cene_i_stanje($iid);
- $this->sp_stanje_lot($iid);
- $this->sp_totali($naziv_dok, $IdSled); // nece da napravi totale ??????????????????
- $this->sp_cene_i_stanje($IdSled);
- $this->sp_stanje_lot($IdSled);
- // PROVERA STANJA NAKON STORNO DOKUMENTA
- $rstreba = "Select oorderby as TrebaProvera,AlijasTabele from recnikpodataka where dokument='" . $naziv_dok . "' and oorderby>0";
- $rez = $this->query($rstreba);
- $red = $this->fetch_object($rez);
- if (!empty($red)) {
- $Poruka = $this->proveristanje($naziv_dok, $IdSled, $red->TrebaProvera);
- if ($Poruka != "") {
- if ($red->TrebaProvera == 1) {
- $sve_ok = false;
- jsonPoruka($Poruka);
- $this->rollBack();
- }
- } else {
- $this->commit();
- }
- }
- return $sve_ok;
- }
- /**
- * Vrsi brisanje dokumenata i stavki
- *
- * @param string $vrstadokumenta
- * @param string $naziv_dok
- * @param array $data
- * @param integer $id_dok_stablo
- * @param string $imestabla
- * @param integer $iid
- * @return boolean
- */
- public function delete_naredba($vrstadokumenta, $naziv_dok, $data, $id_dok_stablo = 0, $imestabla = '', $iid = null) {
- $klon = $this->uzmi_naziv_klona($naziv_dok);
- $kveri = "SELECT tabela FROM Upiti where NazivDokumenta= '" . $klon . "' AND ime like'Uuu%'";
- $rezultat = $this->query($kveri);
- $red = $this->fetch($rezultat);
- if (empty($red)) {
- return true;
- }
- $tabela = $red[0];
- $delete = "DELETE FROM " . $tabela . " Where ID_" . $tabela . "=" . $iid;
- $this->query($delete);
- if ($vrstadokumenta != 'P') {
- $this->sp_totali($klon, $iid);
- }
- // BRISANJE SLOGOVA IZ PRIPADAJUCIH TABELA NAKON BRISANJA IZ DOKUMENATA
- if ($imestabla == 'Dokumenta') {
- $naziv_dokumenta = $this->uzmi_naziv_dok($id_dok_stablo);
- $klon = $this->uzmi_naziv_klona($naziv_dokumenta);
- $rezultat = $this->query("SELECT tabela FROM Upiti where NazivDokumenta='" . $klon . "' and ime LIKE 'UUU%'");
- if ($rezultat == false) {
- return true;
- }
- while ($red = $this->fetch($rezultat)) {
- $tabela = $red[0];
- $delete = "DELETE FROM " . $tabela . " Where ID_DokumentaView=" . $iid;
- $this->query($delete);
- }
- $sql = "SELECT DISTINCT TotaliDaNe FROM refreshGrida WHERE dokument = '$naziv_dokumenta' AND TotaliDaNe LIKE '%DA%'";
- $rez = $this->query($sql);
- $red = $this->fetch_object($rez);
- if (!empty($red)) {
- $this->sp_totali($klon, $iid);
- }
- }
- return true;
- }
- /**
- * Vrsi update dokumenata i stavki
- *
- * @param string $vrstadokumenta
- * @param string $naziv_dok
- * @param array $data
- * @param string $imestabla
- * @param integer $id_dok_stablo
- * @param integer $iid
- * @param integer $iddok
- * @param string $klon
- * @param string $tabela
- * @return boolean
- */
- public function update_naredba($vrstadokumenta, $naziv_dok, IParams $data, $imestabla = '', $id_dok_stablo = 0, $iid = -1, $iddok = null, $klon = null, $tabela = null) {
- $data->sanitize();
- if ($vrstadokumenta == "D") {
- $kveri = "SELECT Upit,tabela,ime FROM Upiti where NazivDokumenta='$klon' AND Ime like 'uuu%' AND tabela='$tabela'";
- } else {
- $kveri = "SELECT Upit,tabela,ime FROM Upiti where NazivDokumenta='$naziv_dok' AND Ime like 'uuu%'";
- }
- $rezultat = $this->query($kveri);
- while ($red = $this->fetch($rezultat, 2)) {
- $select = trim($red['Upit']);
- $tabela = $red['tabela'];
- $upit = trim(str_replace('Uuu', '', $red['ime']));
- if (sizeof($data) == 0 || $tabela == '' || $select == '') {
- return false;
- }
- $insert = "UPDATE $tabela SET ";
- $select = substr($select, 7, strlen($select) - 7); //vraca string bez SELECT
- $select = stristr($select, 'from', true); //vraca sve prije from
- $polja = explode(',', $select); //vraca sva polja iz originalne select naredbe
- if ($vrstadokumenta === "S") {
- $pp = "ID_" . $tabela . "Stablo";
- // $polje_podaci = $data->getAlijasPodaci($pp);
- $value = $id_dok_stablo; ///$polje_podaci['sadrzaj'];
- $insert .= $pp . "=";
- $insert .= "N'" . $value . "',";
- }
- foreach ($polja as $p) {
- $p = trim($p);
- $nasao = false;
- if ($p == "UUser") {
- $insert .= "$p='" . $_SESSION['idke'] . "',";
- $nasao = true;
- }
- if ($p == "TTime" && $tabela !== "Dokumenta") {
- $insert .= "$p='" . date("d.m.y H:i:s") . "',";
- $nasao = true;
- }
- if ($p === "BrojDokumenta") {
- $polje_podaci = $data->getAlijasPodaci($p);
- $value = $polje_podaci['sadrzaj'];
- if (trim($value) !== "") {
- $insert .= $p . "=";
- $insert .= "N'" . $value . "',";
- }
- $nasao = true;
- }
- if ($tabela === "Dokumenta" && ( $p === "RedniBroj" || $p === "MesecPoreza")) {
- $nasao = true;
- }
- if (!$nasao) { // AKO NIJE NI JEDNO OD IZNAD POMENUTIH POLJA
- if (strpos($p, 'ID_') === 0) { //jeste ID_Polje
- if ($p == "ID_DokumentaView") {
- $polje_podaci = $data->getPoljePodaci($p, $tabela);
- $value = $iddok;
- } else {
- $polje_podaci = $data->getAlijasPodaci($p);
- $value = $polje_podaci['sadrzaj'];
- }
- } else { // nije ID_polje
- try {
- $polje_podaci = $data->getPoljePodaci($p, $tabela);
- $value = $polje_podaci['sadrzaj'];
- } catch (Exception $e) {
- Log::NE_POSTOJI_ALIJAS($naziv_dok, $p, $e);
- continue;
- }
- }
- if (count($polje_podaci) > 0) {
- $mupit = $polje_podaci['tvview'];
- if (strieq($upit, $mupit)) {
- $insert .= $p . "=";
- if ($value === 'null') {
- $insert .= 'null,';
- } else {
- $insert .= "N'" . $value . "',";
- }
- }
- }
- }
- }//foreach polja
- $insert = substr($insert, 0, strlen($insert) - 1); //ima zarez viska
- if ($vrstadokumenta == "D") {
- if (strpos($upit, "Stavke") === false) { // nisu Stavke
- $insert .= " Where ID_DokumentaView=$iddok";
- } else {
- $insert .= " Where ID_{$tabela}=$iid";
- }
- } else { //vrstadokumenta nije "D"
- $insert .= " Where ID_{$tabela}=$iid";
- }
- // Log::update($insert);
- //die();
- try {
- $this->query($insert);
- } catch (PDOException $e) {
- Log::DATABASE_UPDATE_ERROR($insert, $e);
- throw $e;
- }
- }// svi redovi iz upita
- if ($imestabla === "Dokumenta") { // samo tada izvrsimo totale za Komitente i Artikle cemo to uraditi u dovrsiobradu
- $this->sp_totali($imestabla, $iid);
- }
- return true;
- }
- /**
- * Vrsi insert dokumenata i stavki
- *
- * @param string $vrstadokumenta
- * @param string $naziv_dok
- * @param array $data
- * @param integer $id_dok_stablo
- * @param string $datum_dok
- * @param string $imestabla
- * @parma integer $iddok
- * @param string $klon
- * @param string $tabela
- * @return PDOStatement
- */
- public function insert_naredba($vrstadokumenta, $naziv_dok, IParams $data, $id_dok_stablo = 0, $datum_dok = null, $imestabla = null, $iddok = null, $klon = null, $tabela = '', $brdok = '') {
- //var_dump($naziv_dok);
- $data->sanitize();
- if ($vrstadokumenta == "D") {
- $kveri = "SELECT Upit,tabela,ime FROM Upiti where NazivDokumenta= '$klon' AND Ime like 'uuu%' AND tabela='$tabela'";
- } else {
- $kveri = "SELECT Upit,tabela,ime FROM Upiti where NazivDokumenta= '$naziv_dok' AND Ime like 'uuu%'";
- }
- $rezultat = $this->query($kveri);
- while ($red = $this->fetch($rezultat)) {
- $select = $red[0];
- $tabela = $red[1];
- $upit = str_replace('Uuu', '', $red[2]);
- if (sizeof($data) == 0 || $tabela == '' || $select == '') {
- return false;
- }
- $insert = "INSERT INTO $tabela (";
- $insert2 = " VALUES(";
- $select = trim($select);
- $select = substr($select, 7, strlen($select) - 7); //vraca string bez SELECT
- $select = stristr($select, 'from', true); //vraca sve prije from
- $polja = explode(',', $select); //niz polja iz select naredbe
- $brojac_polja = 0;
- $broj_dokumenta = '';
- $id_rad = $_SESSION['idke'];
- $id_org_str = $_SESSION['idorg'];
- if ($vrstadokumenta === "S") {
- $pp = "ID_" . $tabela . "Stablo";
- $value = $id_dok_stablo; //$polje_podaci['sadrzaj'];
- $insert .= $pp . ",";
- $insert2 .= $value . ",";
- }
- foreach ($polja as $p) {
- $p = trim($p);
- // polja koja se ne unose vec ih programski dodeljujemo
- $nasao = true;
- switch ($p) {
- case "ID_DokumentaView":
- $insert .= $p . ",";
- $insert2 .= $iddok . ",";
- break;
- case "ID_KadrovskaEvidencija":
- if ($klon !== 'Dozvole') {
- $insert .= $p . ",";
- $insert2 .= $id_rad . ",";
- } else {
- $nasao = false;
- }
- break;
- case "ID_OrganizacionaStrukturaView":
- $insert .= $p . ",";
- $insert2 .= $id_org_str . ",";
- break;
- case "BrojDokumenta":
- $naziv_dokumenta = $this->uzmi_naziv_dok($id_dok_stablo);
- if ($brdok !== "") {
- $broj_dokumenta = $brdok;
- } else {
- $broj_dokumenta = $this->sp_kreiraj_broj($naziv_dokumenta, $id_dok_stablo, $datum_dok, $id_org_str, $_SESSION['idke']);
- }
- $insert .= $p . ",";
- $insert2 .= "'" . $broj_dokumenta . "',";
- break;
- case "RedniBroj":
- if ($klon === 'Dokumenta') {
- $s1 = explode('/', $broj_dokumenta);
- $s2 = explode('-', $s1[0]);
- $redni_broj = $s2[1];
- $insert = $insert . $p . ",";
- $insert2 .= $redni_broj . ",";
- } else {
- $nasao = false;
- }
- break;
- case "Proknjizeno":
- $prokknjizeno = $this->popuni_proknjizeno($naziv_dokumenta);
- $insert .= $p . ",";
- $insert2 .= "'" . $prokknjizeno . "',";
- break;
- case "MesecPoreza":
- $mesecporeza = $this->popuni_mesecporeza($datum_dok);
- $insert .= $p . ",";
- $insert2 .= $mesecporeza . ",";
- break;
- case "UUser":
- $insert .= $p . ",";
- $insert2 .= $_SESSION[idke] . ",";
- break;
- case "TTime":
- $ttime = date("d.m.y H:i:s");
- $insert .= $p . ",";
- $insert2 .= "'" . $ttime . "',";
- break;
- default:
- $nasao = false;
- break;
- }
- if ($nasao) {
- $brojac_polja++;
- }
- if (!$nasao) { // AKO NIJE NI JEDNO OD IZNAD POMENUTIH POLJA
- if (strpos($p, 'ID_') === 0) { //jeste ID_Polje
- $polje_podaci = $data->getAlijasPodaci($p);
- } else { // nije ID_polje
- $polje_podaci = $data->getPoljePodaci($p, $tabela);
- }
- if (count($polje_podaci) > 0) {
- $value = $polje_podaci['sadrzaj'];
- $mupit = $polje_podaci['tvview'];
- if ($upit == $mupit && $value != "" && $p != "ID_DokumentaView") {
- $brojac_polja++;
- $insert .= $p . ",";
- if ($value === 'null') {
- $insert2 .= 'null,';
- } else {
- $insert2 .= "N'" . $value . "',";
- }
- }
- }
- }// nije nasao
- }//foreach polja}
- if ($brojac_polja == 0) {
- return false;
- }
- $insert = substr($insert, 0, strlen($insert) - 1); //ima zarez viska
- $insert .= ")";
- $insert2 = substr($insert2, 0, strlen($insert2) - 1); //ima zarez viska
- $insert2 .= ")";
- $insert .= $insert2;
- try {
- $this->query($insert);
- } catch (PDOException $e) {
- Log::DATABASE_INSERT_ERROR($insert, $e);
- if ($e->getCode() === '23000') {
- jsonPoruka('Vec postoji unet dati indeks, ne moze se uneti duplikat!');
- die();
- }
- throw $e;
- }
- } // foreach red iz upita
- if ($vrstadokumenta === 'S') {
- if ($imestabla === 'Dokumenta') {
- $idDok = $this->uzmi_id_dok($broj_dokumenta);
- } else { //ostali osnovni sifarnici
- $idDok = $this->uzmi_max_id_dok($imestabla);
- }
- $this->sp_totali($imestabla, $idDok);
- }
- return $idDok;
- }
- /**
- * @todo COMMENT
- *
- * @param integer $id_dokumenta
- * @return PDOStatement
- * @throws Exception
- */
- function update_lotpdvdostavnicaumaloprodaju($id_dokumenta) {
- $kveri = "update RacunStavke set ProdajnaCena=c.ProdajnaCena from Cenovnik as c," .
- " Racun as r, RacunStavke as rs where c.ID_ArtikliView=rs.ID_ArtikliView " .
- " and rs.id_DokumentaView=r.ID_DokumentaView and c.ID_Skladiste=r.ID_Skladiste2 " .
- " and r.ID_DokumentaView=" . $id_dokumenta . " and rs.ProdajnaCena=0";
- $sve_ok = $this->query($kveri);
- $kveri2 = "update RacunStavke set ProsecnaNabavnaCena=c.ProsecnaNabavnaCena ," .
- " NabavnaCena=c.ProsecnaNabavnaCena" .
- " from Cenovnik as c, Racun as r, RacunStavke as rs " .
- " where c.ID_ArtikliView=rs.ID_ArtikliView and " .
- " rs.id_DokumentaView=r.ID_DokumentaView and " .
- " c.ID_Skladiste=r.ID_Skladiste and rs.ProsecnaNabavnaCena=0 and " .
- " r.ID_DokumentaView=" . $id_dokumenta;
- //if($sve_ok)
- $sve_ok = $this->query($kveri2);
- if (!$sve_ok) {
- throw new Exception("Greska update! update_lotpdvdostavnicaumaloprodaju!");
- }
- return $sve_ok;
- }
- /**
- * @todo COMMENT
- *
- * @param integer $id_dokumenta
- * @return PDOStatement
- * @throws Exception
- */
- function update_lotpdvinternadostavnica($id_dokumenta) {
- $kveri = "update RacunStavke set Primljeno=kolicina from RacunStavke as rs " .
- "where rs.ID_DokumentaView=" . $id_dokumenta . " and Primljeno=0";
- $sve_ok = $this->query($kveri);
- $kveri2 = "update RacunStavke set NabavnaCena=c.ProsecnaNabavnaCena " .
- "from Cenovnik as c,Racun as r, RacunStavke as rs " .
- "where c.ID_ArtikliView=rs.ID_ArtikliView " .
- "and rs.id_DokumentaView=r.ID_DokumentaView " .
- "and c.ID_Skladiste=r.ID_Skladiste and " .
- "r.ID_DokumentaView=" . $id_dokumenta . " and rs.NabavnaCena = 0";
- //if($sve_ok)
- $sve_ok = $this->query($kveri2);
- $kveri3 = "update RacunStavke set ProdajnaCena=c.ProsecnaNabavnaCena " .
- "from Cenovnik as c,Racun as r, RacunStavke as rs " .
- "where c.ID_ArtikliView=rs.ID_ArtikliView " .
- "and rs.id_DokumentaView=r.ID_DokumentaView " .
- "and c.ID_Skladiste=r.ID_Skladiste and " .
- "r.ID_DokumentaView=" . $id_dokumenta . " and rs.ProdajnaCena = 0";
- //if($sve_ok)
- $sve_ok = $this->query($kveri3);
- $kveri4 = "update RacunStavke set ProsecnaNabavnaCena=ProdajnaCena, NabavnaCena=ProdajnaCena " .
- " where ID_DokumentaView=" . $id_dokumenta;
- //if($sve_ok)
- $sve_ok = $this->query($kveri4);
- $kveri5 = "update RacunStavke set PDV=at.pdv " .
- " From RacunStavke as rs, KonacniRacunStavkeView as at " .
- " where ID_DokumentaView=" . $id_dokumenta .
- " AND rs.ID_DokumentaView=at.ID_KonacniRacunStavkeView" .
- " AND rs.ID_ArtikliView=at.ID_ArtikliView";
- //if($sve_ok)
- $sve_ok = $this->query($kveri5);
- $kveri6 = "update RacunStavke set ProsecnaNabavnaCena=c.ProsecnaNabavnaCena " .
- "from Cenovnik as c, RacunStavke as rs, Racun as R,KonacniRacunTotali as KR where " .
- "c.ID_Skladiste = r.ID_Skladiste and c.ID_ArtikliView=rs.ID_ArtikliView " .
- " and (rs.ProsecnaNabavnaCena=0 or (rs.id_artikliview<>kr.id_artikliview and rs.id_racunstavke=KR.iid and r.ID_DokumentaView = KR.ID_KonacniRacunTotali)) " .
- " And r.ID_DokumentaView = rs.ID_DokumentaView " .
- "And r.ID_DokumentaView = " . $id_dokumenta;
- //if($sve_ok)
- $sve_ok = $this->query($kveri6);
- $kveri7 = "update RacunStavke set ProdajnaCena=ProsecnaNabavnaCena, " .
- "NabavnaCena=ProsecnaNabavnaCena from RacunStavke as rs " .
- "where rs.ID_DokumentaView = " . $id_dokumenta;
- //if($sve_ok)
- $sve_ok = $this->query($kveri7);
- if (!$sve_ok) {
- throw new Exception("Greska prilikom izvrsavanja upita! update_lotpdvinternadostavnica!");
- }
- return $sve_ok;
- }
- /**
- * @todo COMMENT
- *
- * @param integer $id_dokumenta
- * @return PDOStatement
- * @throws Exception
- */
- function update_lotinterninalogzarobu_lotpdvinterninalogzarobu($id_dokumenta) {
- $kveri = "SELECT c.ProsecnaNabavnaCena as pnc,c.PlanskaCena as plc FROM Cenovnik as c," .
- " InterniNalogZaRobuStavke as rs, InterniNalogZaRobu as R " .
- " WHERE c.ID_Skladiste = r.ID_Skladiste " .
- " AND c.ID_ArtikliView=rs.ID_ArtikliView and r.ID_DokumentaView=rs.ID_DokumentaView " .
- " AND r.ID_DokumentaView=" . $id_dokumenta;
- $imacena = false;
- $rez = $this->query($kveri);
- while ($this->fetch($rez)) {
- $imacena = true;
- }
- if ($imacena) {
- $kveri2 = "update InterniNalogZaRobuStavke set JedinicnaCena=c.ProsecnaNabavnaCena " .
- " from Cenovnik as c,InterniNalogZaRobuStavke as rs, InterniNalogZaRobu as R " .
- " where c.ID_Skladiste = r.ID_Skladiste " .
- " and c.ID_ArtikliView=rs.ID_ArtikliView and r.ID_DokumentaView=rs.ID_DokumentaView " .
- " and r.ID_DokumentaView=" + $id_dokumenta + " And JedinicnaCena=0";
- $sve_ok = $this->query($kveri2);
- }
- if (!$sve_ok) {
- throw new Exception("Greska prilikom izvrsavanja upita! update_lotinterninalogzarobu_lotpdvinterninalogzarobu!");
- }
- return $sve_ok;
- }
- /**
- * Cita strukturu grida iz recnika podataka
- *
- * @param string $doc
- * @param string $tabela
- * @return array
- */
- function grid_load_str($doc, $tabela) {
- $br_kolona = 0;
- $kolone = array();
- $strukt_upit = "SELECT AlijasPolja, Polje, Srpski, WidthKolone, TipoviPodataka.CSS, TipoviPodataka.PHPFormat,
- RecnikPodataka.ID_NaziviNaFormi, TipoviPodataka.ID_TipoviPodataka, RecnikPodataka.DodatniCSS,TabIndex,TabelaVView,JJoinTVv as ImaNaslov, formulaForme FROM RecnikPodataka, NaziviNaFormi, TipoviPodataka where "
- . "RecnikPodataka.Dokument<>'' and TipoviPodataka.ID_TipoviPodataka=RecnikPodataka.ID_TipoviPodataka and
- RecnikPodataka.ID_NaziviNaFormi=NaziviNaFormi.ID_NaziviNaFormi and
- (width > 0 or alijaspolja='color' or RecnikPodataka.ID_NAZIViNAFORMI=20
- or RecnikPodataka.ID_NAZIViNAFORMI=25 or alijaspolja like'IID%'
- or alijaspolja like 'Id_'+ AlijasTabele
- or (Izborno <> '' and alijaspolja like 'Id_'+ Izborno)) AND TUD>-1 AND
- Dokument='$doc' and TabelaVView='$tabela' order by Dokument,tabelavview,tabindex;";
- $rezultat = $this->query($strukt_upit);
- while ($red = $this->fetch_Assoc($rezultat)) {
- if ($doc != "KadroviIOrganizacionaStruktura" && $doc != "Dozvole") {
- if ($red['AlijasPolja'] != "NazivOrg") {
- $kolone[$br_kolona] = $red;
- $br_kolona++;
- }
- } else {
- $kolone[$br_kolona] = $red;
- $br_kolona++;
- }
- }
- return $br_kolona === 0 ? 0 : $kolone;
- }
- /**
- * @todo COMMENT
- *
- * @param string $doc
- * @param string $tabela
- * @return string
- */
- function grid_totali($doc, $tabela) {
- $strukt_upit = "SELECT TotaliDaNe FROM RefreshGrida WHERE Dokument='$doc' and ImeUpita='$tabela'";
- $rezultat = $this->query($strukt_upit);
- $red = $this->fetch_Assoc($rezultat);
- return trim($red['TotaliDaNe']);
- }
- /**
- * Vraca podatke za zadati brdok
- *
- * @param string $brdok
- * @return array
- */
- function uzmi_podatke_iz_brdok($brdok) {
- $query = 'SELECT Naziv as nazivdok, ulazniizlazni as klon, vrsta, NacinRegistracije as nacinreg, iid as id_dokumenta FROM SifarnikDokumenta, dokumentatotali where brdok = :brdok AND SifarnikDokumenta.naziv = dokumentatotali.dokument';
- $sth = $this->prepare($query);
- $sth->bindParam(':brdok', $brdok);
- $sth->execute();
- return $sth->fetch(2);
- }
- /**
- * Vraca registarski broj za dati dokument
- *
- * @param string $dokument
- * @return string
- */
- function uzmi_registarski_broj($dokument) {
- $query = "SELECT RegistarskiBroj FROM SifarnikDokumenta WHERE Naziv = :dokument";
- $sth = $this->prepare($query);
- $sth->bindValue(':dokument', $dokument);
- $sth->execute();
- $res = $sth->fetch(2);
- return !empty($res) ? $res['RegistarskiBroj'] : '';
- }
- public function uzmi_sifradok($dokument) {
- $sql = 'select brdok from izvestajistablo where naziv = :dokument';
- $sth = $this->prepare($sql);
- $sth->bindParam(':dokument', $dokument);
- $sth->execute();
- return $sth->fetch(PDO::FETCH_COLUMN);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement