vratiDirProcesi().'/Prijemnica/DPrijemnica.class.php'); class DPrijemnicaKupca extends DPrijemnica { function DPrijemnicaKupca(&$Db) { $this->DPrijemnica($Db,3); $this->Stranicenje=1; } function VratiPodatkeStanje() { global $DAplikacija; include_once($DAplikacija->vratiDirProcesi().'/Klijent/MKlijent.class.php'); $MK=new MKlijent($_SESSION["DKorisnik"]->vratiIdKorisnika()); $idKupac=$MK->VratiId($_SESSION["DKorisnik"]->vratiIdKorisnika()); $this->IzvrsiUpit("create temporary table t ( idOtpremnica int, idProizvod int, kolicina float ) "); $this->IzvrsiUpit("insert into t(idOtpremnica, idProizvod, kolicina) select a.idOtpremnica, a.idProizvod, sum(a.kolicina) as kolicina from ( select p.Poreklo as idOtpremnica, s.idProizvod, sum(kolicina) as kolicina from StavkaPrijemnice s join PorekloDokumenta p on s.idPrijemnica = p.idDokument group by p.Poreklo, s.idProizvod union all select p.Poreklo as idOtpremnica, s.idProizvod, sum(kolicina) as kolicina from StavkaPovratnice s join PorekloDokumenta p on s.idPovratnica = p.idDokument group by p.poreklo, s.idProizvod ) a group by a.idOtpremnica, a.idProizvod "); $podaciStanje=$this->IzvrsiSql("select o.idOtpremnica, d.broj, count(*) brojStavki from Dokument d join Otpremnica o on d.idDokument = o.idOtpremnica and d.idKupac = $idKupac join StavkaOtpremnice so on o.idOtpremnica = so.idOtpremnica and so.Status = 0 where not exists (select 0 from t where t.idOtpremnica = o.idOtpremnica and t.idProizvod = so.idProizvod and t.kolicina = so.kolicina) group by d.broj,o.idOtpremnica order by d.broj "); $this->IzvrsiUpit("drop table t "); return $podaciStanje; } function DodeliFilter() { $idKlijent=$_SESSION["DKorisnik"]->vratiIdVezaLicniPodaci(); $filter .= " and d.idKupac=$idKlijent "; $u=new utill(); if ($u->PostojiParametar($this->Parametri,'filterOd')) { if ($u->VratiParametar($this->Parametri,'filterOd')=='') { $pocetakMeseca =date("Y-m-d",mktime(0, 0, 0, date("m"), date("01"), date("Y"))) ; $this->Parametri["Post"]["filterOd"]=$pocetakMeseca; } else { $this->Parametri["Post"]["filterOd"]=$this->EU2MySql($u->VratiParametar($this->Parametri,'filterOd')); } if ($u->VratiParametar($this->Parametri,'filterDo')=='') { $DanasnjiDan =date("Y-m-d"); $this->Parametri["Post"]["filterDo"]=$DanasnjiDan; } else { $this->Parametri["Post"]["filterDo"]=$this->EU2MySql($u->VratiParametar($this->Parametri,'filterDo')); } $od=$this->Parametri["Post"]["filterOd"]; $do=$this->Parametri["Post"]["filterDo"]; $filter .=" and d.datumKreiranja between '$od' and '$do'"; } if ($u->PostojiParametar($this->Parametri,'filterBrojDokumenta')==true) { if ($u->VratiParametar($this->Parametri,'filterBrojDokumenta')!='') { $broj = $u->VratiParametar($this->Parametri,'filterBrojDokumenta'); $filter .= " and d.broj = '$broj'"; } } if ($u->PostojiParametar($this->Parametri,'filterStatus')==true) { if ($u->VratiParametar($this->Parametri,'filterStatus')!='') { $status = $u->VratiParametar($this->Parametri,'filterStatus'); $filter .= " sd.idStatusVrsteDokumenta = $status"; } } if ($u->PostojiParametar($this->Parametri,'filterSifraRobe')==true) { if ($u->VratiParametar($this->Parametri,'filterSifraRobe')!='') { $sifraRobe = $u->VratiParametar($this->Parametri,'filterSifraRobe'); $filter .= " and exists(select 0 from StavkaPrijemnice sf1 where sf1.idPrijemnica = p.idPrijemnica and sf1.idProizvod = $sifraRobe)"; } } if ($u->PostojiParametar($this->Parametri,'filterNazivRobe')==true) { if ($u->VratiParametar($this->Parametri,'filterNazivRobe')!='') { $nazivRobe = $u->VratiParametar($this->Parametri,'filterNazivRobe'); $filter .= " and exists(select 0 from StavkaPrijemnice sf1 join Proizvod pr1 on sf1.idProizvod = pr1.idProizvod where sf1.idPrijemnica = p.idPrijemnica and pr1.naziv like '%$nazivRobe%')"; } } $this->Filter=$filter; } function Snimi() { parent::Snimi(); } function SnimiStavke() { $idPrijemnica=$this->Parametri["Post"]["idDokument"]; $kolicina=$this->Parametri["Post"]["Kolicina"]; $idProizvod = $this->Parametri["Post"]["idProizvod"]; //update u tabelu StavkaPorudzbenice $this->IzvrsiUpit("update StavkaPrijemnice set kolicina=$kolicina, where idPrijemnica=$idPrijemnica and idProizvod=$idProizvod "); } function Dodaj() { if (isset($this->Parametri["Get"]["idProdavac"])) { $this->Parametri["Post"]["idProdavac"]=$this->Parametri["Get"]["idProdavac"]; } $this->Parametri["Post"]["idKupac"]=$_SESSION["DKorisnik"]->VratiIdVezaLicniPodaci(); $idPrijemnica = parent::Dodaj(); //insert u tabelu Prijemnica $this->IzvrsiUpit("insert into Prijemnica (idPrijemnica) values($idPrijemnica)"); return $idPrijemnica; } function DodajStavku() { if (isset($this->Parametri["Get"]["idOtvorenogDokumenta"])) { $idPrijemnica=$this->Parametri["Get"]["idOtvorenogDokumenta"]; } else { $idPrijemnica=$this->VratiIdPrijemnice(); } $kolicina=$this->Parametri["Get"]["Kolicina"]; $idProizvod = $this->Parametri["Get"]["IdProizvod"]; $rezultat=$this->IzvrsiSql("select idProizvod, kolicina from StavkaPrijemnice where idPrijemnica=$idPrijemnica and idProizvod = $idProizvod"); if (isset($rezultat[0][0])) { $idProizvod=$rezultat[0][0]; $prethodnaKolicina=$rezultat[0][1]; $kol=$kolicina+$prethodnaKolicina; $this->IzvrsiUpit("update StavkaPrijemnice set kolicina = '$kol' where idPrijemnica = $idPrijemnica and idProizvod = $idProizvod"); } else { //insert u tabelu StavkaPrijemnice $this->IzvrsiUpit(" insert into StavkaPrijemnice(idPrijemnica, kolicina,idProizvod) values($idPrijemnica, $kolicina,$idProizvod)"); } if (!isset($this->Parametri["Get"]["idOtvorenogDokumenta"])) { $idDokumenta=$this->Parametri["Get"]["IdDokumenta"]; $rezultat=$this->IzvrsiSql("select 0 from poreklodokumenta where idDokument=$idPrijemnica and poreklo=$idDokumenta"); if (!isset($rezultat[0][0])) { $this->IzvrsiUpit(" insert into PorekloDokumenta(idDokument, poreklo) values($idPrijemnica,$idDokumenta) "); } } } function brisi() { $idPrijemnica=$this->Parametri["Post"]["idk"]; $this->IzvrsiUpit("DELETE from Prijemnica WHERE idPrijemnica = $idPrijemnica"); $this->IzvrsiUpit("DELETE from StavkaPrijemnice WHERE idPrijemnice = $idPrijemnica"); parent::Brisi(); } function BrisiStavku() { $idPrijemnica=$this->Parametri["Get"]["IdDokument"]; $idProizvod=$this->Parametri["Get"]["IdProizvod"]; $this->IzvrsiUpit(" DELETE from StavkaPrijemnice WHERE idPrijemnica = $idPrijemnica and idProizvod = $idProizvod"); } function KreirajIzOtpremnice() { $idOtpremnica = $this->Parametri["Get"]["idk"]; $temp = $this->IzvrsiUpit("select idKupac, idProdavac from Dokument where iddokument = $idOtpremnica"); $this->Parametri["Get"]["idKupac"] = $temp[0][0]; $this->Parametri["Get"]["idProdavac"] = $temp[0][1]; $idPrijemnica = parent::Dodaj(); $this->IzvrsiUpit("insert into Prijemnica(idPrijemnica) values($idPrijemnica)"); $this->IzvrsiUpit("insert into PorekloDokumenta(idDokument, poreklo) values($idPrijemnica, $idOtpremnica)"); $this->IzvrsiUpit("insert into StavkaPrijemnice(idPrijemnica, kolicina) select $idPrijemnica, kolicina, from StavkaOtpremnice where idOtpremnica = $idOtpremnica"); } function VratiDetaljeOtvorenihStavki($idOtpremnice) { $this->IzvrsiUpit("create temporary table t ( idOtpremnica int, idProizvod int, kolicina float ) "); $this->IzvrsiUpit("insert into t(idOtpremnica, idProizvod, kolicina) select a.idOtpremnica, a.idProizvod, sum(a.kolicina) as kolicina from ( select p.poreklo as idOtpremnica, s.idProizvod, sum(kolicina) as kolicina from StavkaPrijemnice s join PorekloDokumenta p on s.idPrijemnica = p.idDokument group by p.poreklo, s.idProizvod union all select p.poreklo as idOtpremnica, s.idProizvod, sum(kolicina) as kolicina from StavkaPovratnice s join PorekloDokumenta p on s.idPovratnica = p.idDokument group by p.poreklo, s.idProizvod ) a group by a.idOtpremnica, a.idProizvod "); $SqlString="select d.broj, o.idOtpremnica, d.idProdavac, o.datumOtpreme, so.idProizvod, pr.naziv, so.kolicina as IsporucenaKolicina, Coalesce(t.kolicina, 0) as ObradjenaKolicina, so.kolicina - Coalesce(t.kolicina, 0) as NeobradjenaKolicina from Dokument d join Otpremnica o on d.idDokument = o.idOtpremnica and d.idDokument =$idOtpremnice join StavkaOtpremnice so on o.idOtpremnica = so.idOtpremnica and so.Status = 0 join Proizvod pr on pr.idProizvod = so.idProizvod left join t on t.idOtpremnica = o.idOtpremnica and t.idProizvod = so.idProizvod where so.kolicina <> coalesce(t.kolicina, 0) order by d.broj, so.idProizvod"; if (isset($this->Parametri["Get"]["OdabranaStranica"])) { $this->OdabranaStranica=$this->Parametri["Get"]["OdabranaStranica"]; } else { $this->OdabranaStranica=1; } $sqlcount="select count(*) ".stristr($SqlString, 'from'); //$this->Podaci["Podaci"]=$this->IzvrsiSql($this->SqlString); $Podaci["BrojPodataka"]=$this->IzvrsiSql("$sqlcount"); if ($this->Stranicenje!=0) { $ofset=$this->BrojElemenataListe*($this->OdabranaStranica-1); $SqlString.=" LIMIT $ofset,$this->BrojElemenataListe "; $Podaci["OtvoreneStavke"]=$this->IzvrsiSql("$SqlString"); } else { $Podaci["OtvoreneStavke"]=$this->IzvrsiSql("$SqlString"); } return $Podaci; } function VratiIdPrijemnice() { $idKupac=$_SESSION["DKorisnik"]->vratiIdVezaLicniPodaci(); $idProdavac=$this->Parametri["Get"]["idProdavac"]; $rezultat=$this->IzvrsiSql("select p.idPrijemnica from Prijemnica p join Dokument dok on p.idPrijemnica = dok.idDokument where dok.idKupac = $idKupac and dok.idProdavac=$idProdavac and p.idPrijemnica in (select d.idDokument from StatusDokumenta s, Dokument d where d.idVrstaDokumenta = 3 and d.iddokument=s.iddokument and idStatusVrsteDokumenta = 1 and datum = (select max(datum) from StatusDokumenta sd where sd.idDokument = s.idDokument)) "); if (!isset($rezultat[0][0])) { return -1; } else { return $rezultat[0][0]; } } function PromeniStatusKorpe() { $idPrijemnica=$this->Parametri["Post"]["IdDokument"]; $broj=$this->Parametri["Post"]["Broj"]; $datumIsporuke=$this->Parametri["Post"]["DatumOtpreme"]; //menjam status i datum postojece korpe $this->IzvrsiUpit("update Dokument set datumKreiranja=now(), broj='$broj' where idDokument=$idPrijemnica"); parent::PromeniStatus(2); /*$this->IzvrsiUpit("update povratnica set datumOtpreme=now() where idPovratnica=$idPovratnica");*/ } function vratiBrojStavkiZaProdavca($idProdavac,$datumOd,$datumDo) { $rezultat=$this->IzvrsiSql(" select count(*) from StavkaPrijemnice s join Prijemnica p on s.idPrijemnica = p.idPrijemnica join Dokument d on s.idPrijemnica=d.iddokument where d.idProdavac = $idProdavac and d.datumKreiranja between '$datumOd' and '$datumDo'"); return $rezultat[0][0]; } function vratiJedinstveneKupce($idProdavac,$datumOd,$datumDo) { $rezultat=$this->IzvrsiSql(" select distinct idKupac from Prijemnica p join Dokument d on p.idPrijemnica=d.iddokument where d.idProdavac = $idProdavac and d.datumKreiranja between '$datumOd' and '$datumDo'"); return $this->VratiKolonu($rezultat,'idKupac'); } } ?>