Ejemplo n.º 1
0
        private void Prijava()
        {
            HttpResponseMessage response = KompanijeService.GetActionResponse("GetByKorisnickoIme", korisnickoImeInput.Text);

            if (response.StatusCode == System.Net.HttpStatusCode.NotFound)
            {
                MessageBox.Show("Korisnicko ime nije pronadjeno", "Greska", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            else if (response.IsSuccessStatusCode)
            {
                Kompanije k = response.Content.ReadAsAsync <Kompanije>().Result;

                if (UIHelper.GenerateHash(k.LozinkaSalt, lozinkaInput.Text) == k.LozinkaHash)
                {
                    this.DialogResult           = DialogResult.OK;
                    Global.notBrojac            = 0;
                    Global.prijavljenaKompanija = k;
                    if (k.RefKompanijaID != null)
                    {
                        Global.IsRadnik = true;
                        HttpResponseMessage response2 = KompanijeService.GetResponse(k.RefKompanijaID.GetValueOrDefault().ToString());
                        Global.prijavljenaKompanija = response2.Content.ReadAsAsync <Kompanije>().Result;
                    }
                    else
                    {
                        Global.IsRadnik = false;
                    }
                    Form frm = new Administracija.DodajKompaniju();
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Pogresni korisnicki podaci", "Greska", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    lozinkaInput.Text = String.Empty;
                }
            }
            else
            {
                MessageBox.Show("Error Code" + response.StatusCode + " Message - " + response.ReasonPhrase);
            }
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> CreateUplatnicaManually(int masterId, int godina, int mjesec, int zgradaId = 0)
        {
            try
            {
                var vlasniciPeriod = await _db.Zgrade_PosebniDijeloviMaster_VlasniciPeriod.FirstOrDefaultAsync(p => p.PosebniDioMasterId == masterId && p.Zatvoren != true);

                // period nije zatvoren!
                var vlasnici   = vlasniciPeriod.Zgrade_PosebniDijeloviMaster_VlasniciPeriod_Vlasnici.Where(p => p.VlasniciPeriodId == vlasniciPeriod.Id);
                var vlasnik    = vlasnici.FirstOrDefault(); // uzeo prvog
                var vlasnikObj = await _db.Zgrade_Stanari.FirstOrDefaultAsync(p => p.Id == vlasnik.StanarId);

                Platitelj = vlasnikObj.Ime + " " + vlasnikObj.Prezime;
                string PozivNaBroj = "987654321";
                var    god         = await _db.PrihodiRashodi.FirstOrDefaultAsync(p => p.Godina == godina);

                var mj = god.PrihodiRashodi_Rashodi.Where(p => p.Mjesec == mjesec && p.PosebniDioMasterId == masterId);
                Iznos = (decimal)mj.Where(p => p.PosebniDioMasterId == masterId).Sum(p => p.Iznos);
                var zgradaObj = await _db.Zgrade.FirstOrDefaultAsync(p => p.Id == zgradaId);

                _zgrada = zgradaObj;

                var identity  = (ClaimsIdentity)User.Identity;
                var companyId = Convert.ToInt32(identity.FindFirstValue("Cid"));
                var tvrtka    = await _db.Kompanije.FirstOrDefaultAsync(p => p.Id == companyId);

                _tvrtka = tvrtka;
                var newGuid = UplatnicaPdf(Opis, Platitelj, zgradaObj.Adresa, zgradaObj.Mjesto, tvrtka.IBAN, PozivNaBroj, Iznos);

                foreach (var item in mj)
                {
                    item.PdfFileName = newGuid;
                }
                await _db.SaveChangesAsync();

                return(Json(new { success = true }));
            }
            catch
            {
                return(Json(new { success = false }));
            }
        }
Ejemplo n.º 3
0
        public IzmjenaProfila(int?id = null)
        {
            if (id == null)
            {
                k = Global.prijavljenaKompanija;
            }
            else
            {
                HttpResponseMessage response = KompanijeService.GetResponse(id.GetValueOrDefault().ToString());

                if (response.IsSuccessStatusCode)
                {
                    k = response.Content.ReadAsAsync <Kompanije>().Result;
                }
                else
                {
                    MessageBox.Show("Error Code" +
                                    response.StatusCode + " : Message - " + response.ReasonPhrase);
                }
            }
            InitializeComponent();
            this.AutoValidate = AutoValidate.Disable;
        }
Ejemplo n.º 4
0
        private void DodajBtn_Click(object sender, EventArgs e)
        {
            Random rnd = new Random();

            int _rnd = rnd.Next(1, 100000);

            Kompanije k = new Kompanije();

            k.Naziv        = "";
            k.Adresa       = "";
            k.Email        = _rnd.ToString();
            k.Telefon      = "";
            k.KorisickoIme = KorisickoImeTxt.Text;
            k.GradID       = 1; // gradID

            k.KorisickoIme   = KorisickoImeTxt.Text;
            k.RefKompanijaID = _id;

            k.LozinkaSalt = UIHelper.GenerateSalt();
            k.LozinkaHash = UIHelper.GenerateHash(k.LozinkaSalt, LozinkaTxt.Text);

            HttpResponseMessage response = KompanijeService.PostResponse(k);

            if (response.IsSuccessStatusCode)
            {
                MessageBox.Show("Uspjesno dodan radnik", "Dodano", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }
            else
            {
                MessageBox.Show("Korisnicko ime je zauzeto", "Greska", MessageBoxButtons.OK, MessageBoxIcon.Error);

                //string msg = response.ReasonPhrase;
                //MessageBox.Show("Error Code" +
                //response.StatusCode + " : Message - " + msg);
            }
        }
Ejemplo n.º 5
0
        private void BindGrid()
        {
            HttpResponseMessage response = KompanijeService.GetResponse(Global.prijavljenaKompanija.KompanijaID.ToString());

            if (response.IsSuccessStatusCode)
            {
                Kompanije k = response.Content.ReadAsAsync <Kompanije>().Result;
                ServisLbl.Text = k.Naziv;
            }

            //

            HttpResponseMessage response2 = KompanijeUpitiService.GetActionResponse("GetCountNeodgovoreni", Global.prijavljenaKompanija.KompanijaID.ToString());

            if (response2.IsSuccessStatusCode)
            {
                int brUpita = response2.Content.ReadAsAsync <int>().Result;
                UpitiLbl.Text = brUpita.ToString();

                if (Global.notBrojac < 2)
                {
                    if (brUpita > 0)
                    {
                        notifyIcon.ShowBalloonTip(3000, "Novi upiti", "Imate ukupno " + brUpita.ToString() + " neodgovorenih upita", ToolTipIcon.Info);
                        Global.notBrojac++;
                    }
                }
            }
            else
            {
                UpitiLbl.Text = "0";
            }

            //

            HttpResponseMessage response3 = ServisiService.GetActionResponse("GetCountUtoku", Global.prijavljenaKompanija.KompanijaID.ToString());

            if (response3.IsSuccessStatusCode)
            {
                BrojServisaLbl.Text = response3.Content.ReadAsAsync <int>().Result.ToString();
            }
            else
            {
                BrojServisaLbl.Text = "0";
            }

            //

            DatumLbl.Text = DateTime.Now.ToShortDateString();

            HttpResponseMessage response4 = KompanijeService.GetActionResponse("GetProsjecnaOcjena", Global.prijavljenaKompanija.KompanijaID.ToString());

            if (response4.IsSuccessStatusCode)
            {
                decimal p = response4.Content.ReadAsAsync <decimal>().Result;

                p = Math.Round(p, 2);
                prosjekLbl.Text = p.ToString();
            }
            else
            {
                prosjekLbl.Text = "";
            }

            //
            DatumLbl.Text = DateTime.Now.ToShortDateString();

            HttpResponseMessage response5 = KompanijeUpitiService.GetActionResponse("GetUpitiSvi", Global.prijavljenaKompanija.KompanijaID.ToString());

            if (response5.IsSuccessStatusCode)
            {
                int sviUpitiBroj = response5.Content.ReadAsAsync <int>().Result;

                ukupnoUpitaLbl.Text = sviUpitiBroj.ToString();
            }
            else
            {
                ukupnoUpitaLbl.Text = "0";
            }

            HttpResponseMessage response6 = ServisiService.GetActionResponse("GetServisiSvi", Global.prijavljenaKompanija.KompanijaID.ToString());

            if (response6.IsSuccessStatusCode)
            {
                int sviServisiBroj = response6.Content.ReadAsAsync <int>().Result;

                servisiSviLbl.Text = sviServisiBroj.ToString();
            }
            else
            {
                servisiSviLbl.Text = "0";
            }
        }
Ejemplo n.º 6
0
        public List <KompanijeDetalji_Result> GetSlicneKompanije(int kompanijaID, int kategorijaID)
        {
            UcitajKompanije(kompanijaID, kategorijaID);
            List <Ocjene> ocjenePosmatraneKompanije = db.esp_Ocjene_GetByKompanijaID(kompanijaID).ToList();

            List <Ocjene> zajedniceOcjene1 = new List <Ocjene>();
            List <Ocjene> zajedniceOcjene2 = new List <Ocjene>();
            List <KompanijeDetalji_Result> preporuceneKompanije = new List <KompanijeDetalji_Result>();


            //preporuci slicne kompanije
            foreach (var x in kompanijeDict)
            {
                foreach (var o in ocjenePosmatraneKompanije)
                {
                    if (x.Value.Where(i => i.KlijentID == o.KlijentID).Count() > 0)
                    {
                        zajedniceOcjene1.Add(o);
                        zajedniceOcjene2.Add(x.Value.Where(i => i.KlijentID == o.KlijentID).First());
                    }
                }
                double slicnost = GetSlicnost(zajedniceOcjene1, zajedniceOcjene2);
                if (slicnost > 0.85)
                {
                    preporuceneKompanije.Add(db.esp_Kompanije_GetDetalji(x.Key).First());
                }
                zajedniceOcjene1.Clear();
                zajedniceOcjene2.Clear();
            }


            if (preporuceneKompanije.Count() != 0)
            {
                //sortiranje
                preporuceneKompanije = preporuceneKompanije.OrderByDescending(p => p.ProsjecnaOcjena).ToList();
            }

            //cold start, ukoliko klijent jos nije ocijenio nijednu kompaniju -
            //dodaj top 5 sa najvecom prosjecnom ocjenom
            else
            {
                List <Kompanije> CS = new List <Kompanije>();

                CS = db.esp_Recommender_ColdStart(kompanijaID, kategorijaID).ToList();
                foreach (var x in CS)
                {
                    preporuceneKompanije.Add(db.esp_Kompanije_GetDetalji(x.KompanijaID).First());
                }

                //sortiranje
                preporuceneKompanije = preporuceneKompanije.OrderByDescending(p => p.ProsjecnaOcjena).ToList();
            }

            List <KompanijeDetalji_Result> filter = new List <KompanijeDetalji_Result>();

            //filtriraj prvih 5 i dodaj jednu kompaniju bez ocjene
            if (preporuceneKompanije.Count > 5)
            {
                // select top 5
                foreach (var x in preporuceneKompanije)
                {
                    filter.Add(x);

                    if (filter.Count >= 5)
                    {
                        break;
                    }
                }

                //dodaj jednu kompaniju bez ocjene u listu -- 6. stavka
                Kompanije bezOcjene = db.esp_Recommender_ColdStart_PreporuciKompanijeBezOcjena(kompanijaID, kategorijaID).FirstOrDefault();
                if (bezOcjene != null) // ako ne postoji kompanija bez ocjene
                {
                    filter.Add(db.esp_Kompanije_GetDetalji(bezOcjene.KompanijaID).First());
                }
            }
            else
            {
                // ukoliko nema toliko zajednickih kompanija i mal je broj ocjenjenih kompanija(cold start,pocetak rada aplikacije) popuni listu sa random kompanijama
                foreach (var x in preporuceneKompanije)
                {
                    filter.Add(x);
                }

                int brojac   = 0;
                int loopStop = 0;

                while (filter.Count < 6 && loopStop < 100)
                {
                    //popuni listu random kompanijama bez ocjena
                    Kompanije bezOcjene        = db.esp_Recommender_ColdStart_PreporuciKompanijeBezOcjena(kompanijaID, kategorijaID).FirstOrDefault();
                    KompanijeDetalji_Result kd = db.esp_Kompanije_GetDetalji(bezOcjene.KompanijaID).First();

                    bool postoji = false;
                    foreach (var x in filter.ToList())
                    {
                        postoji = false;
                        if (kd.KompanijaID == x.KompanijaID)// ukoliko vec postoji kompanija u listi, nemoj je dodavati
                        {
                            brojac--;
                            postoji = true;
                        }
                    }

                    if (postoji == false)
                    {
                        filter.Add(db.esp_Kompanije_GetDetalji(bezOcjene.KompanijaID).First());
                    }

                    brojac++;
                    loopStop++; // zaustavi beskonacnu petlju ako vise nema kompanija na listi, lista preporucenih kompanija ce biti manja od 6
                }
            }

            return(filter);
        }
Ejemplo n.º 7
0
        public IHttpActionResult PutKompanije(int id, Kompanije k)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (id != k.KompanijaID)
            {
                return(BadRequest());
            }

            db.esp_KompanijeUpdate(id, k.Naziv, k.Adresa, k.Email, k.Telefon, k.KorisickoIme, k.LozinkaSalt, k.LozinkaHash);

            if (k.kategorije != null)
            {
                List <KompanijeKategorije> Kategorije = db.KompanijeKategorije.Where(y => y.KompanijaID == k.KompanijaID).ToList(); //trenutne kategorije

                List <int> trenutneKategorije = new List <int>();
                // dodavanje ID trenutnih kategorija
                foreach (var i in Kategorije)
                {
                    trenutneKategorije.Add(i.KategorijaID);
                }

                List <int> isteKategorije = new List <int>();
                // dodavanje ID istih kategorija
                foreach (var ku in Kategorije)
                {
                    foreach (var u in k.kategorije)
                    {
                        if (ku.KategorijaID == u.KategorijaID)
                        {
                            isteKategorije.Add(ku.KategorijaID);
                        }
                    }
                }
                foreach (var u in k.kategorije)
                {
                    if (isteKategorije.Contains(u.KategorijaID))
                    {
                        //
                    }
                    else
                    {
                        db.esp_KompanijeKategorije_Insert(k.KompanijaID, u.KategorijaID);
                        isteKategorije.Add(u.KategorijaID); // dodavanje ID -a kako bi kasnije provjerili koje uloge treba brisati
                    }
                }
                //brisanje neoznacenih uloga
                foreach (var x in trenutneKategorije)
                {
                    if (isteKategorije.Contains(x))
                    {
                        //
                    }
                    else
                    {
                        KompanijeKategorije zaBrisanje = db.KompanijeKategorije.Where(y => y.KompanijaID == k.KompanijaID && y.KategorijaID == x).FirstOrDefault();
                        db.KompanijeKategorije.Remove(zaBrisanje);
                        db.SaveChanges();
                    }
                }
            }


            return(StatusCode(HttpStatusCode.NoContent));
        }
Ejemplo n.º 8
0
        public async Task <JsonResult> SendRashodi(List <UplatniceRashodi> list)
        {
            if (list == null)
            {
                return(Json(new { success = false }));
            }

            if (list.Count == 0)
            {
                return(Json(new { success = false }));
            }


            var identity  = (ClaimsIdentity)User.Identity;
            var companyId = Convert.ToInt32(identity.FindFirstValue("Cid"));
            var tvrtka    = await _db.Kompanije.FirstOrDefaultAsync(p => p.Id == companyId);

            _tvrtka       = tvrtka;
            IBANPrimatelj = tvrtka.IBAN;

            // za svaki master, kreiraj uplatnicu (pdf), qr kod, nadji kome se salje i posalji
            IEnumerable <int> masteri = list.Where(p => p.poslano != true).Select(p => p.masterId).Distinct();

            if (masteri.Count() == 0)
            {
                return(Json(new { success = false }));
            }



            //int godina = (await _db.PrihodiRashodi.FirstOrDefaultAsync(p => p.Id == list[0].prihodiRashodiGodId)).Godina;
            int godina   = list[0].godina;
            int zgradaId = list[0].zgradaId;
            int mjesec   = list[0].mjesec;


            string email     = "";
            var    zgradaObj = await _db.Zgrade.FirstOrDefaultAsync(p => p.Id == zgradaId);

            _zgrada = zgradaObj;

            List <UplatniceRashodiPopis> uplatniceList = new List <UplatniceRashodiPopis>();

            foreach (var zgradaMasterId in masteri)
            {
                //var priRezGodina = await _db.PricuvaRezijeGodina.FirstOrDefaultAsync(p => p.ZgradaId == zgradaId && p.Godina == godina);
                //var priRezMjesec = priRezGodina.PricuvaRezijeMjesec.FirstOrDefault(p => p.Mjesec == mjesec);
                //var master = priRezMjesec.PricuvaRezijePosebniDioMasteri.FirstOrDefault(p => p.PosebniDioMasterId == zgradaMasterId);
                //var vlasnik = master.PricuvaRezijePosebniDioMasterVlasnici.FirstOrDefault(p => p.PricuvaRezijePosebniDioMasterId == master.Id);
                //var vlasnikObj = await _db.Zgrade_Stanari.FirstOrDefaultAsync(p => p.Id == vlasnik.VlasnikId);

                var vlasniciPeriod = await _db.Zgrade_PosebniDijeloviMaster_VlasniciPeriod.FirstOrDefaultAsync(p => p.PosebniDioMasterId == zgradaMasterId && p.Zatvoren != true);

                // period nije zatvoren!
                var vlasnici = vlasniciPeriod.Zgrade_PosebniDijeloviMaster_VlasniciPeriod_Vlasnici.Where(p => p.VlasniciPeriodId == vlasniciPeriod.Id);
                var vlasnik  = vlasnici.FirstOrDefault(p => p.UplatnicaGlasiNaVlasnika == true); // uzeo prvog
                if (vlasnik != null)
                {
                    var vlasnikObj = await _db.Zgrade_Stanari.FirstOrDefaultAsync(p => p.Id == vlasnik.StanarId);

                    Platitelj = vlasnikObj.Ime + " " + vlasnikObj.Prezime;
                    string PozivNaBroj = "987654321";
                    Iznos = list.Where(p => p.masterId == zgradaMasterId && p.godina == godina).Sum(p => p.iznos);

                    var zgradaMaster = await _db.Zgrade_PosebniDijeloviMaster.FirstOrDefaultAsync(p => p.Id == zgradaMasterId);

                    email = (await _db.Zgrade_Stanari.FirstOrDefaultAsync(p => p.Id == zgradaMaster.UplatnicaStanarId)).Email;

                    var u = new UplatniceRashodiPopis
                    {
                        Email          = email,
                        PdfFileName    = UplatnicaPdf(Opis, Platitelj, zgradaObj.Adresa, zgradaObj.Mjesto, IBANPrimatelj, PozivNaBroj, Iznos),
                        ZgradaMasterId = zgradaMasterId
                    };
                    uplatniceList.Add(u);
                }
            }

            var ret = await SendMail(uplatniceList, Opis, Poruka);

            foreach (var r in ret)
            {
                var targetGod = await _db.PrihodiRashodi.FirstOrDefaultAsync(p => p.Godina == godina && p.ZgradaId == zgradaId);

                var targetRashodi = targetGod.PrihodiRashodi_Rashodi.Where(p => p.Mjesec == mjesec);
                foreach (var t in targetRashodi)
                {
                    if (t.PosebniDioMasterId == r.ZgradaMasterId)
                    {
                        t.PoslanoZaMjesec = r.Poslano;
                        t.StatusSlanja    = r.StatusText;
                        t.DatumSlanja     = DateTime.Now;
                        t.PdfFileName     = r.PdfFileName;

                        //list.FirstOrDefault(p => p.masterId == t.PosebniDioMasterId).datumSlanja = t.DatumSlanja;
                        //list.FirstOrDefault(p => p.masterId == t.PosebniDioMasterId).poslano = r.Poslano;
                        //list.FirstOrDefault(p => p.masterId == t.PosebniDioMasterId).statusSlanja = r.StatusText;
                        foreach (var item in list.Where(p => p.masterId == t.PosebniDioMasterId && p.isUkupnoRow != true))
                        {
                            item.datumSlanja  = t.DatumSlanja;
                            item.poslano      = r.Poslano;
                            item.statusSlanja = r.StatusText;
                            item.PdfFileName  = r.PdfFileName;
                        }
                    }
                }
            }
            await _db.SaveChangesAsync();

            //return new HttpStatusCodeResult(200, list.ToString());
            return(Json(new { success = true, response = list }));
            // kome se salje - pise u pdMasteru u zgradi - email
        }