понедељак, 14. октобар 2013.

Energetski zaštićeni kupci (GAS)

Tekst uredbe možete preuzeti na linku:
http://www.merz.gov.rs/cir/dokumenti/uredba-o-energetski-zasticenom-kupcu

Kako implementirati ovu odluku u programima PoISa?
Prvo treba uključiti opciju o energetski zaštićenim kupcima, opcija se uključuje pomoću programa parametri komunalnih usluga, na četvrtoj kartici ovog programa (gde se nalaze ostale opcije vezane za obračun gasa) nalazi se izbor "Energetski zaštićeni kupci", ovaj izbor ima tri opcije:

  • 0 Ne unose se energecki zaštiženi kupci
  • 1 Unose se energecki zaštićeni kupci ali se ne umanjuje iznos (meseci u kojima se ne umanjuje iznos)
  • 2 Unose se energeki zaštićeni kupci i umanjuje se račun (meseci kada se umanjuje račun)
Izborom opcija 1 ili 2 dobi će te mogućnost obeležavanja mernih mesta koje poseduje energetski zaštićeni kupci.
Uredba o energetski zaštićenim kupcima odnosi se samo na grejne mesece, pa će te pre obračuna podešavati pomoću ovog izbora da li želite da se računi energetski zaštićenih kupca umanjuju u prestojećem obračunu ili ne. 


Ispod ove opcije postoji dugem pomoću kojeg možete kreirati i modifikovati grupe energetski zaštićenih kupaca
Grupe energecki zaštićenih kupaca
Klikom na ovo dugme otvara se program koji će Vam omogućiti kreiranje grupa energetski zaštićenih kupaca.



Potrebno je (ako nije) formirati grupe energetski zaštićenih kupaca kao što je prikazano na slikama. 

Ako ste izabrali jednu od opcija po kojoj je omogućeno obeležavanje energetski zaštićenih kupaca i ako ste formirali grupe moći će te pristupiti obeležavanju mernih mesta koja poseduju energecki zaštićeni kupci. Na parametrima mernih mesta na tećoj kartici nalazi se padajuća lista u kojoj će Vam omogučiti svrstavanje mernog mesta u jednu od grupa "energetski zaštićenih kupaca"


Kada ste izabarali energetski zaštićenog kupca na "Kartici potrošača u gornjem desnom uglu pojavi će se blinkajuća šifra grupe energetski zaštićenog kupca



Klikom na dugme Merno mesto prelazite u deo kartice u kojem možete videti naziv grupe energetski zaštićenog kupca



Pretraga energetski zaštićenih kupaca:

Potrebno je izabrati karticu Klasifikacija MM
Izabrati klasifikaciju Ebergetski zaštićeni kupci
Iz padajuće liste izabrati koju grupu ili poslednju opciju sve zaštićene kupce

петак, 23. август 2013.

Administriranje prava korisnika nad programima PoISa

Nova funkcionalnost rada u PoIS u je i mogućnost definisanja prava, ograničenja i funkcionalnosti na nivou svakog programa i dodeljivanje tih prava svakom klijnetu.
Prvo je potrebno definisati prava nad programom, program za definisanje prava je ips003f.exe.


Izaberite program čija prava definišete. Unosi se paket kojem program pripada, naziv programa. Bitna opcija je "Status programa" ako imate problem sa ograničenim pravima rada sa programo dovoljno je da se program samo deaktivira (ne aktivan) i sva ograničenja koja sta stavili uključujući i definisane lozinka nad programom neće važiti, program će raditi kao da nije aktiviran ovaj moduo.
Kada ste izabrali program čija prava definišete potrebno je klikom na dugme "Atributi programa" preći u odeo definisanja ograničenja i prava nad izabranim programo.



























Na slici vidimo definisana prava i ograničenja koja se odnose na program IPS003.exe Prijava korisnika na PoIS. IZ padajućih lista izaberemo opcije koje želimo. Definišemo naziv prava i poruku koju će operater dobiti ako ne ispunjava definisane kriterijum rada nad tim programom.

Kada su prava programa definisana potrebno je ta prava vezati za svakog klijenta.
Postoje dva načina vezivanja prava nad programom sa klijentim:
  • Pomoću programa IPS003f.exe Prijavljivanje programa i atributa vezanih za te programe
  • Pomoću programa IPS003.exe Prijava korisnika na PoIS
Veyivanja atributa programa sa korisnicima pomoću programa IPS003f.exe Prijavljivanje programa i atributa vezanih za te programe radi se na sledeći način:

Kada ste u programu IPS003f.exe u delu Atributi programa Potrebno je izabrati željeni atribut u tabeli pozicioniranjem na njega. U tom trenutku dugme Klijenti... će Vam postati dostupno. Klikom na to dugme prelazite u odeljak prava korisnika.



























Prvo proverite da li se vezivanje klijenata odnosi na željeni atribut. Na slici je to atribut koji se odnosi na program za Prijavu Klijenata na PoIS IPS003.exe a atribut je Da li korisnik ima pravo brisanja formiranih korisnika.
Sada je potrebno u tabeli ispod izabrati korisnika i dodeliti mu pravo za taj atribut tog programa. Postoji pomoć u administriranju a to je da automatski dodelite prava svim korisnicima klikom na dugme + Stavi svima da , ili da ograničite prava svim korisnicima klikom na - Stavi svima NE. Klikom na neko od ova dva dugmeta dobićete podatke kao na slici!


























Drugi način vezivanja prava rada nad programima sa korisnicima je pomoću programa IPS003.exe Prijava korisnika na PoIS.
Izaberite korisnika:





























петак, 26. јул 2013.

Pogrešna šifra standardnog opisa u programu unos uplata (prelazna blagajna)

Ako je operater prilikom formiranja novog naloga za unos uplata pogrešio šifru standardnog opisa (koja služi za prikaz teksta na priznanicama).





Potrebno je uraditi sledeće:
Izaći iz programa za unos uplata
Ući u program za promenu parametara komunalnih usluga
Na drugoj kartici programa za promenu parametara čekirati opcioju: Ako se u hederu ne unese sifra standardnog opisa dozvoli izbor standardnog opisa na stavci (Kod stampe priznanica da bi se video tekst)
Zapamtiti promene
Ponovo ući u program za unos uplata.
Na prvoj stavci uneti o polje standardni opis ispravnu sifru standardnog opisa.
Izači iz programa za unos uplata.

Ponovo dečekirati opciju Ako se u hederu ne unese sifra standardnog opisa dozvoli izbor standardnog opisa na stavci (Kod stampe priznanica da bi se video tekst) u programu za promenu parametara komunalnih usluga.
Nastaviti sa radmo u programu za unos uplata.

четвртак, 9. август 2012.

Zakon o visini stope zatezne kamate

Uf...
Danas je dosla na red ispravka načina obračuna kamte za korisnike koji koriste ovaj naš modul. Kao što pretpostavljam da znate, Ustavni sud je 27.jula 2012. godine doneo odluku da je primena konformnog metoda obračuna zatezne kamate nije u saglasnosti sa Ustavom.
Ja nisam ekonomista ali ovo je strasno. Mesčna stopa zatezne kamate je propisana Zaknom članovima 2 i 3.


Član 2
Stopa zatezne kamate sastoji se od:
1. mesečne stope rasta potrošačkih cena
2. fiksne stope od 0,5% mesečno.
Član 3
Obračun duga uvećanog za zateznu kamatu vrši se tako da se fiksna stopa od 0,5% množi iznosom glavnog duga uvećanog za kamatu po stopi iz člana 2. tačka 1. ovog zakona.

Znači, glavni dug se množi sa fiksnom stopom od 0,5% uvečanom za stopu rasta potrošačkih cena (rast cena na malo). U tački 1 člana 2 Zakona se sadrži mesečna stopa inflacije (rasta potrošačkih cena), ova stopa se utvđuje na mesečnom nivou u ovoj godini mesčna stopa iznosi otprilike 1%. Republički zavod za statistiku objavljuje podatke o mesečnim stopama rasta potrošačkih cena u Republici Srbiji na mesečnom nivou.
Znači. Baba ima 100 dinara, za tih 100 dinara baba može da kupi 100 jaja, zavod objavi da je rast potrosackih cena u januaru nio 1% babi a i Ustavnom sudu je jasno da babi 1.februara treba 101 dinar da bi kupila 100 jaja, ali sada nastaje problem zavod objavi da je i u februaru rast potrosackih cena bio 1%, ustavni sud pokusava da ubedi babu da ce joj 01.marta za 100 jaja trebati 102 dinara. Meni se cini da ce se baba poprilicno iznenaditi kada pokusa da kupi 100 jaja.
I sada ispada ako je inflacija dovoljno velika i za duzi vremenski period, da poverilac na ime zatezne kamate dobija manji iznos nego sto se postize revalorizacijom potrošačkih cena.

E sada moje pitanje je da li u Ustavu postoji povelja da svako ko u Srbiji ima veci IQ od 80 mora da napusti  zemlju pa da ostanu samo babe koje ce pokusavati 01.marta da kupe 100 jaja za 102 dinara.

Hm.. Mozda. Baba ce 31.decembra misliti da moze da kupi jaja za 112  dinara, pa onih 0,6825 dinara moguce da ce se prelije kod nekih novih - starih tajkuna, pa ako bude dovoljno baba, malo li je?
Idem ja da radim.

среда, 4. април 2012.

SachsenWasser - utosak po mernim mestima

Izvršena izmena programa Pregled stanja vodomjera ( IKO001v ). Dodana je opcija prikaza utrošaka fluida na mernim mestima za izabranu godinu po mesecima. Prikazani utrošak prestavlja u stvari fakturisani fluid za svaki iazabrani period. U prikazu će se pojaviti sva merna mesta kojima je obračunat utrošak fluida bez obzira na način obračuna:

  • Obračun po članu
  • Obračun po procentu
  • Pomočno merilo
  • Sekundarni paušalac
  • Paušalac po članu
  • Samostalni paušalac
  • Samostalno merilo
  • Glavno merilo
  • Uneta potrošnja po ćlanu
  • Paušal po mesecu i ćlanu

Ako vas interesuju utrošci samo onih mernih mesta koja imaju merač u tu grupu spadaju:
  • Samostalno merilo
  • Glavno merilo
  • Pomočno merilo
Program sa izmenama se nalazi na svim klijentima. Da bi ste pokrenuli program u meniju "Komunalne usluge" izaberite podmeni "Pregledi" a zatim "Pregled i analiza stanja Vodomera" 
Po pokretanju programa treba izabrati opciju “Pregled merača koji su ugrađeni u merno mesto“  (kao na slici)
Prelaskom u prozor sa izborom prikaza podataka, primećujemo da postoje dva  nova izbora:
  • Prikaz mernih mesta sa utroškom vode u izabranoj godini
  • Prikaz merača i mernih mesta sa utroškom vode u izabranoj godini


Izborom opcije „Prikaz mernih mesta sa utroškom vode u izabranoj godini“ i klikom na dugme Prikaži izabrane podatke prelazimo u sledeći izbor. U ovom prozoru je potrebno izabrati godinu za koju želimo da prikažemo podatke.


Izborom godine potrebno je da sačekamo da se podaci popune u tabelu.
Tabela ima sledeće kolone:
  • Šifra rejona
  • Šifra podrejona
  • Broj mernog mesta
  • Sledećih dvanaest kolona su meseci sa fakturisanom vodom u tim mesecima.

Negativne količine prestavljaju stornirane kubike kroz reklamaciju. U VIK ovima se prilikom reklamacije ne vezuju kubike koje storniraju za mesec u kojem su pogrešno fakturisani. 
Izborom druge opcije:
Prikaz merača i mernih mesta sa utroškom vode u izabranoj godini, postupak je indetičan samo što će mo dobti drukčiju strukturu podataka.





Žutom bojom su označene one kolone kod kojih mernih mesta je bila zamena merača u toku izabrane godine. Tako da je u prvoj koloni broj merača a sledeće kolone su parametri mernog mesta čiji se utrošci prikazuju.
Dobijene podatke možete ivesti u EXCEL ako uradite desni klik u tabelu i izaberete opciju „Izvoz“




недеља, 1. април 2012.

Zen problem

Budistički sveštenik dobija zadatak od svog učitelja da meditira tačno 45 minuta.
Nema sat, ima samo dva mirišljava štapića, od kojih svaki gori tačno jedan sat, ali različitom brzinom. 
Kako će sveštenik izmeriti tačno 45min meditacije?


Pošto budistički sveštenik zna C#, verovatno je napisao ovakav code:


using System;
using System.Threading;
namespace Puzzle
{
    class Program
    {
        public static Thread T1_l, T1_r, T2_l, T2_r;
       
        static void Main(string[] args)
        {
            ST st1 = new ST(60, 50, 1);
            ST st2 = new ST(60, 50, 2);
            T1_l = new Thread(new ThreadStart(st1.F1));
            T1_r = new Thread(new ThreadStart(st1.F2));
            T2_l = new Thread(new ThreadStart(st2.F1));
            T2_r = new Thread(new ThreadStart(st2.F2));
            st1._e1 += new EventHandler(_EH1l);
            st1._e2 += new EventHandler(_EH1r);
            st1._e0 += new EventHandler(_Fin1);
            st2._e1 += new EventHandler(_EH2l);
            st2._e2 += new EventHandler(_EH2r);
            st2._e0 += new EventHandler(_Fin2);
 
            T1_l.Start();
            T1_r.Start();
            T2_l.Start();
 
            Console.ReadLine();
        }
 
        static void _Fin1(object sender, EventArgs e)
        {
            Console.WriteLine("First finish  " + sender.ToString());
            if (!T2_r.IsAlive)
                T2_r.Start();
        }
        static void _EH1l(object sender, EventArgs e)
        {
            Console.WriteLine("Left  " + sender.ToString());
        }
        static void _EH1r(object sender, EventArgs e)
        {
            Console.WriteLine("Right " + sender.ToString());
        }
        static void _Fin2(object sender, EventArgs e)
        {
            Console.WriteLine("Finish  " + sender.ToString());
        }
        static void _EH2l(object sender, EventArgs e)
        {
            Console.WriteLine("     Left  " + sender.ToString());
        }
        static void _EH2r(object sender, EventArgs e)
        {
            Console.WriteLine("     Right " + sender.ToString());
        }
    }
    public class ST
    {
        public event EventHandler _e1, _e2, _e0;
        private decimal _d = 0;
        private int[] v_s;
        private int[] v_t;
        private int[] v_d;
        int x, y = 0;
        private DateTime dt;
        private int tt = 1000;
        private int a = 0;
        Random sl = new Random();
        public ST(int _t, int _i, int _a)
        {
            v_s = new int[_t];
            v_t = new int[_t];
            v_d = new int[_t];
            Console.Write("Stick " + _a.ToString() + " (");
            for (int i = 0; i < _t; i++)
            {
                v_s[i] = sl.Next(1, _i);
                v_t[i] = _t / 60;
                v_d[i] = v_s[i] * v_t[i];
                if (i != (_t - 1))
                    Console.Write(v_s[i].ToString() + ",");
                else
                    Console.Write(v_s[i].ToString());
 
            }
            Console.WriteLine(")");
            dt = DateTime.Now;
            //   this._d = v_s.Sum();
            foreach (int q in v_s)
                this._d += q;
            y = _t;
            this.a = _a;
 
            //    Console.WriteLine("Stick {0} Duration: {1} Time: {2}", _a, v_d.Sum(),_t);
            int e = 0;
            foreach (int q in v_d)
                e += q;
            Console.WriteLine("Stick {0} Duration: {1} Time: {2}", _a, e, _t);
            Console.WriteLine();
        }
        public void F1()
        {
            string _b = "";
            decimal _tt = 0;
            while (Duration > 0)
            {
                if (Duration <= v_d[x])
                {
                    _tt = Math.Round(((Duration / Convert.ToDecimal(v_d[x])) *
                        Convert.ToDecimal(v_t[x]) / 2), 2) * tt;
 
                    if ((Program.T2_r.IsAlive) && a == 2)
                        Program.T2_r.Abort();
                    if ((Program.T1_r.IsAlive) && a == 1)
                        Program.T1_r.Abort();
                }
                else
                    _tt = v_t[x] * tt;
                Thread.Sleep(Convert.ToInt32(_tt));
                _b = String.Format("Speed: {0:D2} Time: {1:F0} Duration: {2:D2} Remaining: {3:F0} Elapsed: {4:D2}",
                    v_s[x], _tt / tt, v_d[x], Duration - v_d[x], dt.Subtract(DateTime.Now).Duration().Seconds);
 
                _e1((object)_b, new EventArgs());
                Duration = v_d[x];
                x++;
            }
        }
        public void F2()
        {
            string _b = "";
            decimal _tt = 0;
            while (Duration > 0)
            {
                y--;
                if (Duration <= v_d[y])
                {
                    _tt = Math.Round(((Duration / Convert.ToDecimal(v_d[y])) *
                        Convert.ToDecimal(v_t[y]) / 2), 2) * tt;
                    if ((Program.T2_l.IsAlive) && a == 2)
                        Program.T2_l.Abort();
                    if ((Program.T1_l.IsAlive) && a == 1)
                        Program.T1_l.Abort();
                }
                else
                    _tt = v_t[y] * tt;
                Thread.Sleep(Convert.ToInt32(_tt));
                _b = String.Format("Speed: {0:D2} Time: {1:F0} Duration: {2:D2} Remaining: {3:F0} Elapsed: {4:D2}",
                 v_s[y], _tt / tt, v_d[y], Duration - v_d[y], dt.Subtract(DateTime.Now).Duration().Seconds);
                _e2((object)_b, new EventArgs());
                Duration = v_d[y];
            }
        }
        private decimal Duration
        {
            get { return _d; }
            set
            {
                _d = _d - value;
                if (_d < 0)
                    _d = 0;
                if (_d == 0)
                {
                   _e0((object)dt.Subtract(DateTime.Now).Duration().Seconds, new EventArgs();
 
                    if ((Program.T1_l.IsAlive) && a == 1)
                        Program.T1_l.Abort();
                    if ((Program.T1_r.IsAlive) && a == 1)
                        Program.T1_r.Abort();
                    if ((Program.T2_l.IsAlive) && a == 2)
                        Program.T2_l.Abort();
                    if ((Program.T2_r.IsAlive) && a == 2)
                        Program.T2_r.Abort();
                }
            }
        }
    }
}


понедељак, 16. мај 2011.

Završen konkurs „Vip izazov3” II

„ViPutnik”, „TV program Srbija” i „SerbianNews“ među najboljim domaćim mobilnim aplikacijama. Domaći programeri prijavili 76 aplikacija na konkursu. Nagradni fond iznosi 40.000 evra.




Nagrađene aplikacije u kategoriji Najbolja WP7 aplikacija su:
1. nagrada (3.000 evra): SerbianNews – birani pristup dnevnim informacijama iz Srbije, autor je Aleksandar Petrinović.

2. nagrada (1.000 evra): Bioskopi – dnevni repertoar bioskopskih projekcija koji omogućava i rezervaciju karata, autor Vladimir Milošević.

3. nagrada (Samsung Omnia 7 smart telefon): BudgetZ – praćenje i analiza ličnih finansija, autor Nemanja Zbiljić.

„Vip izazov3”, jedinstveni konkurs za razvoj lokalno primenljivih aplikacija za Android, bada i Windows Phone 7 mobilne telefone, uspešno je završen. Ovim konkursom Vip, u saradnji sa kompanijom Samsung, želi da približi sve tri platforme domaćim programerima i pripremi lokalno tržište za novo korisničko iskustvo.
Razvojem aplikacija za ove tri mobilne platforme, kroz tri različite faze konkursa, programeri su se takmičili za tri vrste nagrada: Najbolje aplikacije po izboru žirija za svaku od platformi, Najbolje studentske aplikacije po izboru žirija i Nagrade programera.
Prema kriterijumima konkursa, prilikom selekcije aplikacija, žiri je vrednovao njihova kreativna rešenja, inovativnost i primenljivost na domaćem tržištu. Takođe, održivost aplikacije i stimulisanje korišćenja mobilne mreže obezbedile su dodatnu vrednost tokom selekcije. Ukupan nagradni fond konkursa „Vip izazov3” iznosi 40.000 evra