Example #1
0
        public ActionResult Put(int id, [FromBody] Ponuda obj)
        {
            try
            {
                if (obj.Id == 0)
                {
                    var kn = Tuv.Helper.Helper.GetIso8601WeekOfYear(obj.DatumPonude);
                    var ks = _session.QueryOver <KursnaLista>()
                             .Where(x => x.Godina == obj.DatumPonude.Year)
                             .And(x => x.Nedelja == kn)
                             .SingleOrDefault <KursnaLista>();

                    if (ks == null)
                    {
                        return(Json(new { Success = false, Message = _localizer["Nije definisana kursna lista za nedelju"] + " " + kn.ToString(), Obj = obj }));
                    }

                    var limit = _session.QueryOver <Parametar>()
                                .Where(x => x.Vrsta == "LimitOdobrenjaDirektora")
                                .SingleOrDefault <Parametar>()
                                .Vredpar1;
                    obj.LimitOdobrenjaDirektora = limit;



                    obj.Rbr = Helper.RedniBroj(_session, "ponuda", obj.DatumPonude);
                    var broj = obj.Rbr.ToString().PadLeft(4, '0') + "/" + obj.DatumPonude.Year.ToString().Substring(2, 2);
                    obj.Broj   = broj;
                    obj.Status = 1;
                    var korisnik = _session.QueryOver <Korisnik>()
                                   .Where(x => x.KorisnickoIme == User.Identity.Name)
                                   .SingleOrDefault <Korisnik>();
                    var poruka = _localizer["Kreirana ponuda"];
                    var tip    = "Kreiranje";
                    var wf     = new PonudaWf()
                    {
                        Ponuda = obj, Datum = DateTime.Now, Korisnik = korisnik, Opis = poruka, Tip = tip, TimelineIkona = "timeline_icon_primary", Ikona = "assignment"
                    };
                    obj.Wfs.Add(wf);
                }

                ObradaStavki(obj);

                _session.SaveOrUpdate(obj);
                _session.Flush();
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(Json(new { Success = false, Message = ex.Message, Obj = obj }));
            }
            return(Json(new { Success = true, Message = "", Obj = obj }));
        }
Example #2
0
        public ActionResult Odobrenje([FromQuery] bool ishod, string komentar, [FromBody] Ponuda obj)
        {
            try
            {
                ObradaStavki(obj);

                var korisnik = _session.QueryOver <Korisnik>()
                               .Where(x => x.KorisnickoIme == User.Identity.Name)
                               .SingleOrDefault <Korisnik>();

                //var kn = Tuv.Helper.Helper.GetIso8601WeekOfYear(obj.DatumPonude);
                //var kurs = _session.QueryOver<KursnaLista>()
                //    .Where(x => x.Godina == obj.DatumPonude.Year)
                //    .And(x => x.Nedelja == kn)
                //    .SingleOrDefault<KursnaLista>()
                //    .Kurs;

                if (komentar.ToLower() == "undefined")
                {
                    komentar = null;
                }



                if (korisnik.Uloge.Contains("Rukovodilac") || korisnik.Uloge.Contains("Administrator"))
                {
                    obj.OdobrenaR = ishod;
                    if (ishod)
                    {
                        obj.DatumOdobrenjaR = DateTime.Now;
                        obj.PonuduOdobrio   = korisnik;
                    }
                }
                if (korisnik.Uloge.Contains("Direktor"))
                {
                    obj.OdobrenaD = ishod;
                    if (ishod)
                    {
                        obj.DatumOdobrenjaD = DateTime.Now;
                    }
                    else
                    {
                        obj.OdobrenaR       = false;
                        obj.DatumOdobrenjaR = null;
                    }
                }



                if (obj.OdobrenaR.GetValueOrDefault() && !obj.PotrebnoOdobrenjeDirektora)
                {
                    obj.Status = 2;
                }
                if (obj.OdobrenaR.GetValueOrDefault() && obj.OdobrenaD.GetValueOrDefault() && obj.PotrebnoOdobrenjeDirektora)
                {
                    obj.Status = 2;
                }

                var poruka = ishod ? _localizer["Ponuda je odobrena"] : _localizer["Ponuda nije odobrena"];

                var tip = "Odobravanje";
                var wf  = new PonudaWf()
                {
                    Ponuda        = obj,
                    Datum         = DateTime.Now,
                    Korisnik      = korisnik,
                    Opis          = poruka,
                    Tip           = tip,
                    Ishod         = ishod ? 1 : 0,
                    Komentar      = komentar,
                    TimelineIkona = ishod ? "timeline_icon_success" : "timeline_icon_danger",
                    Ikona         = ishod ? "done" : "cancel"
                };
                obj.Wfs.Add(wf);

                _session.SaveOrUpdate(obj);
                //_session.SaveOrUpdate(wf);
                _session.Flush();
                return(Json(new { Success = true, Message = "", Obj = obj }));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(Json(new { Success = false, Message = ex.Message }));
            }
        }
Example #3
0
        public ActionResult Prihvatanje([FromQuery] string ishod, [FromBody] Ponuda obj)
        {
            try
            {
                ObradaStavki(obj);

                var korisnik = _session.QueryOver <Korisnik>()
                               .Where(x => x.KorisnickoIme == User.Identity.Name)
                               .SingleOrDefault <Korisnik>();
                var poruka        = "";
                var ikonaTimeline = "";
                var ikona         = "";
                var ish           = 0;
                if (ishod == "Da")
                {
                    obj.Prihvacena       = true;
                    obj.DatumPrihvatanja = DateTime.Now;
                    obj.Status           = 3;
                    ikonaTimeline        = "timeline_icon_primary";
                    ikona  = "done_outline";
                    poruka = _localizer["Ponuda je prihvaćena"];
                    ish    = 1;
                }
                else if (ishod == "Da")
                {
                    obj.Prihvacena       = false;
                    obj.DatumPrihvatanja = DateTime.Now;
                    obj.Status           = 3;
                    ikonaTimeline        = "timeline_icon_danger";
                    ikona  = "error";
                    poruka = _localizer["Ponuda nije prihvaćena"];
                    ish    = 0;
                }
                else //revizija
                {
                    obj.Prihvacena       = null;
                    obj.DatumPrihvatanja = null;
                    obj.OdobrenaD        = null;
                    obj.OdobrenaR        = null;
                    obj.DatumOdobrenjaD  = null;
                    obj.DatumOdobrenjaR  = null;
                    obj.Status           = 1;
                    obj.Revizija         = obj.Revizija + 1;
                    obj.Broj             = obj.Broj + " rev " + obj.Revizija.ToString();
                    ikonaTimeline        = "timeline_icon_warning";
                    ikona  = "edit";
                    poruka = _localizer["Potrebna je revizija ponude"];
                    ish    = 3;
                }


                var tip = "Prihvatanje";
                var wf  = new PonudaWf()
                {
                    Ponuda = obj, Datum = DateTime.Now, Korisnik = korisnik, Opis = poruka, Tip = tip, Ishod = ish, Komentar = null, TimelineIkona = ikonaTimeline, Ikona = ikona
                };
                obj.Wfs.Add(wf);



                _session.SaveOrUpdate(obj);

                _session.Flush();
                return(Json(new { Success = true, Message = "", Obj = obj }));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(Json(new { Success = false, Message = ex.Message }));
            }
        }
Example #4
0
        public ActionResult Put(int id, [FromBody] RadniNalog obj)
        {
            try
            {
                if (obj.Id == 0)
                {
                    obj.Rbr = Helper.RedniBroj(_session, "nalog", DateTime.Now);
                    var broj = "RN " + obj.Rbr.ToString().PadLeft(4, '0') + "/" + obj.DatumKreiranja.Year.ToString().Substring(2, 2);
                    obj.Broj           = broj;
                    obj.Status         = 1;
                    obj.DatumKreiranja = DateTime.Now;
                    var korisnik = _session.QueryOver <Korisnik>()
                                   .Where(x => x.KorisnickoIme == User.Identity.Name)
                                   .SingleOrDefault <Korisnik>();
                    var poruka  = _localizer["Kreiran radni nalog"];
                    var zaduzen = _session.Load <Korisnik>(obj.ZaduzenZaRealizaciju.Id);
                    var poruka2 = _localizer["Kreiran radni nalog - izvršitelj"] + " " + zaduzen.Naziv ?? "";
                    var tip     = "Kreiranje";
                    var wf      = new RadniNalogWf()
                    {
                        RadniNalog = obj, Datum = DateTime.Now, Korisnik = korisnik, Opis = poruka, Tip = tip, TimelineIkona = "timeline_icon_primary", Ikona = "assignment"
                    };
                    var wfp = new PonudaWf()
                    {
                        Ponuda = obj.Ponuda, Datum = DateTime.Now, Korisnik = korisnik, Opis = poruka2, Tip = tip, TimelineIkona = "timeline_icon_default", Ikona = "build"
                    };
                    _session.Save(wfp);
                    obj.Wfs.Add(wf);
                }
                if (obj.Id != 0)
                {
                    var nalog = _session.Load <RadniNalog>(obj.Id);
                    if (nalog.Zatvoren != obj.Zatvoren)
                    {
                        string poruka;
                        string tip;
                        string ikona;
                        if (obj.Zatvoren)
                        {
                            poruka = _localizer["Zatvoren radni nalog"];
                            tip    = "Zatvaranje";
                            ikona  = "lock";
                        }
                        else
                        {
                            poruka = _localizer["Otvoren radni nalog"];
                            tip    = "Otvaranje";
                            ikona  = "lock_open";
                        }

                        var korisnik = _session.QueryOver <Korisnik>()
                                       .Where(x => x.KorisnickoIme == User.Identity.Name)
                                       .SingleOrDefault <Korisnik>();

                        var wf = new RadniNalogWf()
                        {
                            RadniNalog = obj, Datum = DateTime.Now, Korisnik = korisnik, Opis = poruka, Tip = tip, TimelineIkona = "timeline_icon_primary", Ikona = ikona
                        };
                        _session.Save(wf);
                    }

                    var status = _session.CreateSQLQuery("exec StatusNaloga :id")
                                 .SetParameter("id", obj.Id)
                                 .UniqueResult <int>();
                    obj.Status = status;
                }
                ObradaStavki(obj);

                _session.Clear();
                _session.SaveOrUpdate(obj);
                _session.Flush();
                return(Json(new { Success = true, Message = "", Obj = obj }));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(Json(new { Success = false, Message = ex.Message, Obj = obj }));
            }
        }