vratiDirProcesi().'/Faktura/DFaktura.class.php'); class DFakturaProdavca extends DFaktura { function DFakturaProdavca(&$Db) { $this->DFaktura($Db); $this->Stranicenje=1; } function DodeliFilter() { $filter=''; $idKlijent=$_SESSION["DKorisnik"]->vratiIdVezaLicniPodaci(); $filter .= " and d.idProdavac=$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 StavkaOtpremnice sf1 where sf1.idOtpremnica = f.idOtpremnica 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 StavkaOtpremnice sf1 join Proizvod pr1 on sf1.idProizvod = pr1.idProizvod where sf1.idOtpremnica = f.idOtpremnica and pr1.naziv like '%$nazivRobe%')"; } } $l=new logPhp(); $l->UpisiLog("$filter"); $this->Filter=$filter; } function Snimi() { $idOtpremnica=$this->Parametri["Post"]["IdDokument"]; $this->Parametri["Post"]["idProdavac"]=$_SESSION["DKorisnik"]->vratiIdVezaLicniPodaci(); $datumOtpreme=$this->Parametri["Post"]["datumOtpreme"]; parent::Snimi(); //update u tabelu Faktura $this->IzvrsiUpit("update Otpremnica set datumOtpreme=$datumPlacanja where idOtpremnica=$idOtpremnica "); } function SnimiStavke() { $idOtpremnica=$this->Parametri["Post"]["idDokument"]; $idProizvod=$this->Parametri["Post"]["IdProizvod"]; $kolicina=$this->Parametri["Post"]["Kolicina"]; //update u tabelu StavkaPorudzbenice $this->IzvrsiUpit("update StavkaOtpremnice select idProizvod=$idProizvod, kolicina=$kolicina where idOtpremnica=$idOtpremnica and idProizvod=$idProizvod "); } function Dodaj() { if (isset($this->Parametri["Get"]["idKupac"])) { $this->Parametri["Post"]["idKupac"]=$this->Parametri["Get"]["idKupac"]; } $this->Parametri["Post"]["idProdavac"]=$_SESSION["DKorisnik"]->VratiIdVezaLicniPodaci(); $idOtpremnica = parent::Dodaj(); //insert u tabelu Prijemnica $this->IzvrsiUpit("insert into Otpremnica (idOtpremnica) values($idOtpremnica)"); return $idOtpremnica; } function DodajStavku() { if (isset($this->Parametri["Get"]["idOtvorenogDokumenta"])) { $idOtpremnica=$this->Parametri["Get"]["idOtvorenogDokumenta"]; } else { $idOtpremnica=$this->VratiIdOtpremnice(); } $kolicina=$this->Parametri["Get"]["Kolicina"]; $idProizvod = $this->Parametri["Get"]["IdProizvod"]; $rezultat=$this->IzvrsiSql("select idProizvod, kolicina from StavkaOtpremnice where idOtpremnica=$idOtpremnica and idProizvod = $idProizvod"); if (isset($rezultat[0][0])) { $idProizvod=$rezultat[0][0]; $prethodnaKolicina=$rezultat[0][1]; $kol=$kolicina+$prethodnaKolicina; $this->IzvrsiUpit("update StavkaOtpremnice set kolicina = '$kol' where idOtpremnica = $idOtpremnica and idProizvod = $idProizvod"); } else { //insert u tabelu StavkaPrijemnice $this->IzvrsiUpit(" insert into StavkaOtpremnice(idOtpremnica, kolicina,idProizvod) values($idOtpremnica, $kolicina,$idProizvod)"); } if (!isset($this->Parametri["Get"]["idOtvorenogDokumenta"])) { $idDokumenta=$this->Parametri["Get"]["IdDokumenta"]; $rezultat=$this->IzvrsiSql("select 0 from poreklodokumenta where idDokument=$idOtpremnica and poreklo=$idDokumenta"); if (!isset($rezultat[0][0])) { $this->IzvrsiUpit(" insert into PorekloDokumenta(idDokument, poreklo) values($idOtpremnica,$idDokumenta) "); } } } function Brisi() { $idOtpremnica=$this->Parametri["Post"]["idDokument"]; $this->IzvrsiUpit("DELETE from Otpremnica WHERE idOtpremnica = $idOtpremnica"); $this->IzvrsiUpit("DELETE from StavkaOtpremnice WHERE idOtpremnica = $idOtpremnica"); parent::Brisi(); } function BrisiStavku() { $idPrijemnica=$this->Parametri["Get"]["IdDokument"]; $idProizvod=$this->Parametri["Get"]["IdProizvod"]; $this->IzvrsiUpit(" DELETE from StavkaOtpremnice WHERE idOtpremnica = $idPrijemnica and idProizvod = $idProizvod"); } function KreirajIzPorudzbenice() { $idPorudzbenica = $this->Parametri["Post"]["idPorudzbenica"]; $idOtpremnica = parent::Dodaj(); $this->IzvrsiUpit("insert into Otpremnica(idOtpremnica) values( $idOtpremnica, )"); $rezultat = $this->IzvrsiSQL("select idProizvod, kolicina from StavkaPorudzbenice where idPorudzbenica = $idPorudzbenica "); for($i = 0; $i < count($rezultat); $i++) { $this->IzvrsiUpit("insert into StavkaOtpremnice(idOtpremnica, kolicina, idProizvod) values($idOtpremnica, $rezultat[$i][1], $rezultat[$i][0])"); } } function VratiPodatkeStanje() { $idProdavac=$_SESSION["DKorisnik"]->VratiIdVezaLicniPodaci(); $podaciStanje=$this->IzvrsiSql("select k.idKlijent, k.naziv, count(*) brojStavki from Klijent k join Dokument d on k.idKlijent = d.idKupac and d.idProdavac = $idProdavac join Porudzbenica p on p.idPorudzbenica = d.idDokument join StavkaPorudzbenice s on p.idPorudzbenica = s.idPorudzbenica where s.kolicina > (select Coalesce(sum(o.kolicina), 0) as kolicina from StavkaOtpremnice o join PorekloDokumenta pd on o.idOtpremnica = pd.poreklo where d.idDokument = pd.idDokument and s.idProizvod = o.idProizvod) and s.status = 0 group by k.idKlijent, k.naziv order by k.naziv "); return $podaciStanje; } function VratiIdOtpremnice() { $idProdavac=$_SESSION["DKorisnik"]->VratiIdVezaLicniPodaci(); $Kupac=$this->Parametri["Get"]["idKupac"]; //da li postoji otpremnica za kupca sa statusom 1 tj ona u koju se dodaju stavke $podaciStanje=$this->IzvrsiSql("select idOtpremnica from Otpremnica o join Dokument d on o.idDokument=d.idDokument where d.idProdavac = $idProdavac and d.idKupac = $Kupac and idOtpremnica in (select d.idDokument from StatusDokumenta s, Dokument d where d.idVrstaDokumenta = 2 and d.iddokument=s.iddokument and idStatusVrsteDokumenta = 1 and datum = (select max(datum) from StatusDokumenta sd where sd.idDokument = s.idDokument)) "); //ako ne postoji dodajemo je if (!isset($podaciStanje[0][0])) { $this->Parametri["Post"]["Broj"]=''; $idDokumenta=$this->dodaj(); } //inace vracamo id otpremnice else { $idDokumenta=$podaciStanje[0][0]; } return $idDokumenta; } function VratiDetaljeOtvorenihStavki($idKupca) { $idProdavac=$_SESSION["DKorisnik"]->vratiIdVezaLicniPodaci(); $SqlString="select k.idKlijent, d.broj, d.datumKreiranja, s.idProizvod, pr.naziv, s.kolicina, coalesce((select sum(o1.kolicina) from StavkaOtpremnice o1 join PorekloDokumenta pd on o1.idOtpremnica = pd.idDokument and pd.poreklo = p.idPorudzbenica where o1.idProizvod = s.idProizvod), 0) as IsporucenaKolicina, s.kolicina - coalesce((select sum(o1.kolicina) from StavkaOtpremnice o1 join PorekloDokumenta pd on o1.idOtpremnica = pd.idDokument and pd.poreklo = p.idPorudzbenica where o1.idProizvod = s.idProizvod), 0) as razlika, p.idPorudzbenica, '0' as redniBroj from Klijent k join Dokument d on k.idKlijent = d.idKupac and d.idProdavac = $idProdavac join Porudzbenica p on p.idPorudzbenica = d.idDokument join StavkaPorudzbenice s on p.idPorudzbenica = s.idPorudzbenica join Proizvod pr on s.idProizvod = pr.idProizvod where s.kolicina > coalesce((select sum(o1.kolicina) from StavkaOtpremnice o1 join PorekloDokumenta pd on o1.idOtpremnica = pd.idDokument and pd.poreklo = p.idPorudzbenica where o1.idProizvod = s.idProizvod), 0) and s.status = 0 and d.idKupac = $idKupca order by k.naziv "; if (isset($this->Parametri["Get"]["OdabranaStranica"])) { $this->OdabranaStranica=$this->Parametri["Get"]["OdabranaStranica"]; } else { $this->OdabranaStranica=1; } $sqlcount="select count(*) from Klijent k join Dokument d on k.idKlijent = d.idKupac and d.idProdavac = $idProdavac join Porudzbenica p on p.idPorudzbenica = d.idDokument join StavkaPorudzbenice s on p.idPorudzbenica = s.idPorudzbenica join Proizvod pr on s.idProizvod = pr.idProizvod where s.kolicina > coalesce((select sum(o1.kolicina) from StavkaOtpremnice o1 join PorekloDokumenta pd on o1.idOtpremnica = pd.idDokument and pd.poreklo = p.idPorudzbenica where o1.idProizvod = s.idProizvod), 0) and s.status = 0 and d.idKupac = $idKupca"; //$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 PromeniStatusKorpe() { $idOtpremnica=$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=$idOtpremnica"); parent::PromeniStatus(2); $this->IzvrsiUpit("update Otpremnica set datumOtpreme=now() where idOtpremnica=$idOtpremnica"); } } ?>