public static bool RegistrirajPP(string grad, _PoslovniProstor pos, int idAplikacije)
        {
            try
            {
                if (pos.IDFisklaizacije == null)
                {
                    return(false);
                }

                bool demo = grad == "Lokacije";

                using (FiskalServiceClient sc = new FiskalServiceClient())
                {
                    bool ok = sc.PrijaviPoslovniProstor(pos.IDFisklaizacije.Value, demo);
                    sc.Close();

                    using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije)))
                    {
                        POSLOVNI_PROSTOR poslpro = db.POSLOVNI_PROSTORs.First(i => i.IDPoslovnogProstora == pos.IDPoslovnogProstora);
                        poslpro.DatumPrimjene = DateTime.Now;
                        db.SubmitChanges();
                    }

                    return(ok);
                }
            }
            catch (Exception ex)
            {
                Sustav.SpremiGresku(grad, ex, idAplikacije, "REGISTRIRAJ POSLOVNI PROSTOR");
                return(false);
            }
        }
        public static bool SpremiLogo(string grad, byte[] logo, int idRedarstva, int idAplikacije)
        {
            try
            {
                using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije)))
                {
                    POSLOVNI_PROSTOR pp;

                    if (db.POSLOVNI_PROSTORs.Any(i => i.IDRedarstva == idRedarstva))
                    {
                        pp = db.POSLOVNI_PROSTORs.First(i => i.IDRedarstva == idRedarstva);
                    }
                    else
                    {
                        pp = new POSLOVNI_PROSTOR();

                        int id = 1;

                        if (db.POSLOVNI_PROSTORs.Any())
                        {
                            id = db.POSLOVNI_PROSTORs.Max(i => i.IDRedarstva);
                        }

                        pp.IDPoslovnogProstora = id;
                        pp.IDRedarstva         = idRedarstva;
                    }

                    pp.Logo = logo;

                    if (!db.POSLOVNI_PROSTORs.Any())
                    {
                        db.POSLOVNI_PROSTORs.InsertOnSubmit(pp);
                    }

                    db.SubmitChanges();

                    return(true);
                }
            }
            catch (Exception ex)
            {
                Sustav.SpremiGresku("", ex, idAplikacije, "IZMJENI LOGO POSLOVNOG PROSTORA");
                return(false);
            }
        }
Exemple #3
0
        public static bool TemeljnicaR(string grad, DateTime datum, List <string> primatelji, out string poruka, int idAplikacije)
        {
            try
            {
                using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije)))
                {
                    #region PODACI

                    var racuni = from r in db.BLAGAJNICKI_DNEVNIKs
                                 join s in db.BLAGAJNICKI_DNEVNIK_STAVKEs on r.IDDnevnika equals s.IDDnevnika
                                 where r.Datum.Date == datum.Date
                                 select new { r, s };

                    if (!racuni.Any())
                    {
                        PovijestPrijenosa(grad, new List <int>(), "Nema ne prenesenih temeljnica za odabrani datum!", "", true, idAplikacije);
                        poruka = "Nema ne prenesenih podataka za odabrani datum!";
                        return(true);
                    }

                    #endregion

                    POSLOVNI_PROSTOR pp = db.POSLOVNI_PROSTORs.First(i => i.IDRedarstva == 2);

                    poruka = "";
                    string temeljnica = "temeljnica_" + datum.ToString("dd_MM_yy") + ".csv";
                    string putanjaO   = Putanja(putanja + temeljnica);

                    using (StreamWriter rac = new StreamWriter(putanjaO, false, Encoding.Default))
                    {
                        foreach (var r in racuni)
                        {
                            decimal iznos = r.s.Primitak;

                            if (r.s.Izdatak != 0)
                            {
                                iznos = r.s.Izdatak;
                            }

                            if (iznos == 0)
                            {
                                continue;
                            }

                            string iznos1 = iznos.ToString("N2");
                            if (iznos1.Contains(".") && iznos1.Contains(","))
                            {
                                iznos1 = iznos1.Replace(".", "");
                            }
                            else if (iznos1.Contains(".") && !iznos1.Contains(","))
                            {
                                iznos1 = iznos1.Replace(".", ",");
                            }

                            string objektTroska = "RPP01", nm = "";

                            if (!string.IsNullOrEmpty(r.s.NaplatnoMjesto))
                            {
                                if (r.s.NaplatnoMjesto == "JT")
                                {
                                    objektTroska = "RPP02";
                                }

                                nm = r.s.NaplatnoMjesto + "-";
                            }

                            if (r.s.Opis == "DNEVNI UTRŽAK")
                            {
                                decimal osnovica = Math.Round(iznos / ((decimal)(100 + pp.PDV) / 100), 2);
                                decimal pdv      = Math.Round(osnovica * pp.PDV / 100, 2);

                                string osnovica1 = osnovica.ToString("N2");
                                if (osnovica1.Contains(".") && osnovica1.Contains(","))
                                {
                                    osnovica1 = osnovica1.Replace(".", "");
                                }
                                else if (osnovica1.Contains(".") && !osnovica1.Contains(","))
                                {
                                    osnovica1 = osnovica1.Replace(".", ",");
                                }

                                string pdv1 = pdv.ToString("N2");
                                if (pdv1.Contains(".") && pdv1.Contains(","))
                                {
                                    pdv1 = pdv1.Replace(".", "");
                                }
                                else if (pdv1.Contains(".") && !pdv1.Contains(","))
                                {
                                    pdv1 = pdv1.Replace(".", ",");
                                }

                                //ukupno
                                rac.WriteLine("102306" + "#D#" + iznos1 + "#" + "#" + "#" + "#" + "#" + "#" + "#" + "#" + "#" + "#" + "#" + r.r.Datum.ToString("dd.MM.yyyy") + "#" + "#" + "#" + "#" + "#" + "#" + nm + r.s.Opis + "/" + r.s.Tip + "-" + r.s.RB);

                                //pdv
                                rac.WriteLine("240011" + "#P#" + pdv1 + "#" + "#" + "#" + "#" + "#" + "#" + "#" + "#" + "#" + "#" + "#" + r.r.Datum.ToString("dd.MM.yyyy") + "#" + "#" + "#" + "#" + "#" + "#" + nm + r.s.Opis + "/" + r.s.Tip + "-" + r.s.RB);

                                //osnovica
                                rac.WriteLine("751005" + "#P#" + osnovica1 + "#" + "#" + "#" + "#" + "#" + "#" + "300020#" + "300020#" + objektTroska + "#" + "#" + "#" + r.r.Datum.ToString("dd.MM.yyyy") + "#" + "#" + "#" + "#" + "#" + "#" + nm + r.s.Opis + "/" + r.s.Tip + "-" + r.s.RB);
                            }

                            if (r.s.Opis == "POLOG I SMJENA")
                            {
                                rac.WriteLine("102306" + "#P#" + iznos1 + "#" + "#" + "#" + "#" + "#" + "#" + "#" + "#" + objektTroska + "#" + "#" + "#" + r.r.Datum.ToString("dd.MM.yyyy") + "#" + "#" + "#" + "#" + "#" + "#" + nm + r.s.Opis + "/" + r.s.Tip + "-" + r.s.RB);
                                rac.WriteLine("100906" + "#D#" + iznos1 + "#" + "#" + "#" + "#" + "#" + "#" + "#" + "#" + objektTroska + "#" + "#" + "#" + r.r.Datum.ToString("dd.MM.yyyy") + "#" + "#" + "#" + "#" + "#" + "#" + nm + r.s.Opis + "/" + r.s.Tip + "-" + r.s.RB);
                            }

                            if (r.s.Opis == "POLOG II SMJENA")
                            {
                                rac.WriteLine("102306" + "#P#" + iznos1 + "#" + "#" + "#" + "#" + "#" + "#" + "#" + "#" + objektTroska + "#" + "#" + "#" + r.r.Datum.ToString("dd.MM.yyyy") + "#" + "#" + "#" + "#" + "#" + "#" + nm + r.s.Opis + "/" + r.s.Tip + "-" + r.s.RB);
                                rac.WriteLine("100906" + "#D#" + iznos1 + "#" + "#" + "#" + "#" + "#" + "#" + "#" + "#" + objektTroska + "#" + "#" + "#" + r.r.Datum.ToString("dd.MM.yyyy") + "#" + "#" + "#" + "#" + "#" + "#" + nm + r.s.Opis + "/" + r.s.Tip + "-" + r.s.RB);
                            }
                        }

                        foreach (var r in racuni.Where(i => i.s.IDBanke.HasValue).GroupBy(i => i.s.IDBanke))
                        {
                            string konto = "117800"; //PBZ

                            if (r.Key == 1)
                            {
                                konto = "117700"; //ERSTE
                            }

                            string izdatak = r.Sum(i => i.s.Izdatak).ToString("N2");
                            if (izdatak.Contains(".") && izdatak.Contains(","))
                            {
                                izdatak = izdatak.Replace(".", "");
                            }
                            else if (izdatak.Contains(".") && !izdatak.Contains(","))
                            {
                                izdatak = izdatak.Replace(".", ",");
                            }

                            rac.WriteLine("102306" + "#P#" + izdatak + "#" + "#" + "#" + "#" + "#" + "#" + "#" + "#" + "#" + "#" + "#" + r.First().r.Datum.ToString("dd.MM.yyyy") + "#" + "#" + "#" + "#" + "#" + "#" + "KARTICE " + Naplata.VrstaBanke(grad, r.Key, idAplikacije));

                            foreach (var s in r)
                            {
                                string izdatak2 = s.s.Izdatak.ToString("N2");
                                if (izdatak2.Contains(".") && izdatak2.Contains(","))
                                {
                                    izdatak2 = izdatak2.Replace(".", "");
                                }
                                else if (izdatak2.Contains(".") && !izdatak2.Contains(","))
                                {
                                    izdatak2 = izdatak2.Replace(".", ",");
                                }

                                rac.WriteLine(konto + "#D#" + izdatak2 + "#" + "#" + "#" + "#" + "#" + "#" + "#" + "#" + Naplata.VrstaKarticeKratica(grad, s.s.IDVrsteKartice, idAplikacije) + "#" + "#" + "#" + r.First().r.Datum.ToString("dd.MM.yyyy") + "#" + "#" + "#" + "#" + "#" + "#" + s.s.NaplatnoMjesto + "-" + s.s.Opis + "/" + s.s.Tip + "-" + s.s.RB);
                            }
                        }

                        rac.Close();
                    }

                    //saljem na email
                    List <string> prilozi = new List <string>();
                    prilozi.Add(putanjaO);

                    string body = cs.email.Pripremi.PopulateBodyPrijenos("Point", datum.ToString("dd.MM.yy"));

                    bool poslano = Posalji.EmailPrilozi(grad, body, "Prijenos podataka - TEMELJNICA (" + datum.ToString("dd.MM.yy") + ")", primatelji, prilozi, true, idAplikacije);

                    if (poslano)
                    {
                        poruka = "Prijenos podataka je uspješno izvršen";
                        return(true);
                    }

                    poruka = "Došlo je do greške prilikom slanja podataka";
                    return(false);
                }
            }
            catch (Exception ex)
            {
                PovijestPrijenosa(grad, new List <int>(), "", "", false, idAplikacije);
                Sustav.SpremiGresku(grad, ex, idAplikacije, "PRIJENOS RACUNA U RAČUNOVODSTVO");
                poruka = "Došlo je do greške prilikom prijenosa računa!";
                return(false);
            }
        }
        public static bool?IzmjeniPoslovniProstor(string grad, _PoslovniProstor prostor, int idAplikacije)
        {
            try
            {
                using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije)))
                {
                    POSLOVNI_PROSTOR pp;

                    if (db.POSLOVNI_PROSTORs.Any(i => i.IDRedarstva == prostor.IDRedarstva))
                    {
                        pp = db.POSLOVNI_PROSTORs.First(i => i.IDRedarstva == prostor.IDRedarstva);
                    }
                    else
                    {
                        pp = new POSLOVNI_PROSTOR();

                        int id = 1;

                        if (db.POSLOVNI_PROSTORs.Any())
                        {
                            id = db.POSLOVNI_PROSTORs.Max(i => i.IDRedarstva);
                        }

                        pp.IDPoslovnogProstora = id;
                        pp.IDRedarstva         = prostor.IDRedarstva;
                    }

                    pp.Naziv         = prostor.Naziv;
                    pp.Podnaslov     = prostor.Podnaslov;
                    pp.USustavu      = prostor.USustavu;
                    pp.Web           = prostor.Web;
                    pp.Email         = prostor.Email;
                    pp.Opis          = prostor.Opis;
                    pp.Ulica         = prostor.Ulica;
                    pp.Broj          = prostor.Broj;
                    pp.Dodatak       = prostor.Dodatak;
                    pp.Posta         = prostor.Posta;
                    pp.Mjesto        = prostor.Mjesto;
                    pp.Tel           = prostor.Tel;
                    pp.Fax           = prostor.Fax;
                    pp.Banka         = prostor.Banka;
                    pp.OIB           = prostor.OIB;
                    pp.Oznaka        = prostor.Oznaka ?? ""; //todo obrisi
                    pp.RadnoVrijeme  = prostor.RadnoVrijeme;
                    pp.DatumPrimjene = prostor.DatumPrimjene;
                    pp.PDV           = prostor.PDV;
                    pp.Dospijece     = prostor.Dosipijece;

                    if (!db.POSLOVNI_PROSTORs.Any(i => i.IDRedarstva == prostor.IDRedarstva))
                    {
                        prostor.IDPoslovnogProstora = pp.IDPoslovnogProstora;
                        db.POSLOVNI_PROSTORs.InsertOnSubmit(pp);
                    }

                    db.SubmitChanges();

                    int ok = Gradovi.IzmjeniUplatnicu(grad, prostor.Uplatnica, idAplikacije);

                    if (ok == -1)
                    {
                        return(null);
                    }

                    if (pp.IDFiskaliziranog != null)
                    {
                        Fiskalizacija.IzmjeniPP(grad, prostor, idAplikacije);
                    }
                    else
                    {
                        Fiskalizacija.DodajPP(grad, prostor, idAplikacije);
                    }

                    return(true);
                }
            }
            catch (Exception ex)
            {
                Sustav.SpremiGresku("", ex, idAplikacije, "IZMJENI POSLOVNI PROSTOR");
                return(false);
            }
        }
        /*:: POSLOVNI PROSTOR ::*/

        public static bool DodajPP(string grad, _PoslovniProstor pos, int idAplikacije)
        {
            try
            {
                int idPoste;

                using (PostavkeDataContext db = new PostavkeDataContext())
                {
                    idPoste = db.POSTEs.First(i => i.Posta == pos.Posta).IDPoste;
                }

                using (FiskalServiceClient sc = new FiskalServiceClient())
                {
                    _Vlasnik vl = new _Vlasnik()
                    {
                        Id             = pos.IDVlasnikaFiskal ?? 0,
                        Naziv          = pos.Naziv,
                        OIB            = pos.OIB,
                        SjedisteDodKBR = pos.Dodatak,
                        SjedisteKBR    = pos.Broj,
                        SjedistePosta  = idPoste,
                        SjedisteUlica  = pos.Ulica,
                        TipOsobe       = 'P',
                        USustavuPDVa   = true //todo
                    };

                    int idVlasnika = pos.IDVlasnikaFiskal == null?sc.DodajVlasnika(vl) : pos.IDVlasnikaFiskal.Value;

                    if (idVlasnika == -1)
                    {
                        return(false);
                    }

                    FiskalizacijaSR._PoslovniProstor pp = new FiskalizacijaSR._PoslovniProstor
                    {
                        Id              = -1,
                        JLSNaziv        = pos.Mjesto,
                        KBR             = pos.Broj,
                        Naziv           = pos.Naziv,
                        NazivRed1       = pos.Podnaslov,
                        NazivRed2       = "",
                        DodKBR          = pos.Dodatak,
                        OznakaNaRacunu  = pos.Oznaka,
                        Posta           = idPoste,
                        Ulica           = pos.Ulica,
                        Vlasnik         = idVlasnika,
                        SljednostRacuna = "P",
                        Zatvoren        = ""
                    };

                    int idpp = sc.DodajPoslovniProstor(pp);

                    if (idpp != -1)
                    {
                        _RadnoVrijeme rv = new _RadnoVrijeme()
                        {
                            PoslovniProstor = idpp,
                            Opis            = pos.RadnoVrijeme,
                            PocetakPrimjene = DateTime.Now
                        };

                        int idrv = sc.DodajRadnoVrijeme(rv);
                    }

                    sc.Close();

                    using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije)))
                    {
                        POSLOVNI_PROSTOR poslpro = db.POSLOVNI_PROSTORs.First(i => i.IDPoslovnogProstora == pos.IDPoslovnogProstora);

                        poslpro.IDVlasnikaFiskal = idVlasnika;
                        poslpro.IDFiskaliziranog = idpp == -1 ? (int?)null : idpp;

                        db.SubmitChanges();
                    }

                    return(true);
                }
            }
            catch (Exception ex)
            {
                Sustav.SpremiGresku(grad, ex, idAplikacije, "REGISTRIRAJ POSLOVNI PROSTOR");
                return(false);
            }
        }