예제 #1
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);
            }
        }
예제 #2
0
        public static bool OdgodeR(string grad, DateTime datumOd, DateTime datumDo, List <string> primatelji, out string poruka, int idAplikacije)
        {
            try
            {
                //poruka = "";
                //return true;
                using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije)))
                {
                    #region PODACI

                    var racuni = from r in db.RACUNIs
                                 where r.Datum >= datumOd &&
                                 r.Datum <= datumDo &&
                                 (r.IDVrstePlacanja == 4 || r.IDVrstePlacanja == 5) &&
                                 r.Prenesen == false
                                 select r;

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

                    #endregion

                    List <_2DLista> sifrastavke = db.RACUNI_STAVKE_OPIs.Select(i => new _2DLista(i.IDOpisaStavke, i.Sifra)).ToList();

                    poruka = "";
                    string partneri = "partneri_" + datumOd.ToString("dd_MM_yy") + ".csv";
                    string stavke   = "odgode_" + datumOd.ToString("dd_MM_yy") + ".csv";

                    string putanjaP = Putanja(putanja + partneri);
                    string putanjaO = Putanja(putanja + stavke);

                    int dospijece = db.POSLOVNI_PROSTORs.First(i => i.IDRedarstva == 2).Dospijece;

                    using (StreamWriter tw = new StreamWriter(putanjaP, false, Encoding.Default))
                    {
                        using (StreamWriter rac = new StreamWriter(putanjaO, false, Encoding.Default))
                        {
                            foreach (var r in racuni)
                            {
                                var oso = from ro in db.RACUNI_OSOBE_RELACIJEs
                                          join o in db.RACUNI_OSOBEs on ro.IDOsobe equals o.IDOsobe
                                          where ro.IDRacuna == r.IDRacuna
                                          select new { o, ro.Vlasnik };

                                string registracija = "", oib = "00000000000";

                                try
                                {
                                    registracija = db.Prekrsajis.First(i => i.IDNaloga == r.IDReference).RegistracijskaPlocica;
                                }
                                catch
                                {
                                }

                                if (!oso.Any())
                                {
                                    tw.WriteLine(oib + "#" + "#" + "#" + "#" + "#" + "#" + "#");
                                }
                                else
                                {
                                    var os = oso.First();

                                    if (oso.Count() > 1)
                                    {
                                        if (oso.Any(i => i.Vlasnik))
                                        {
                                            os = oso.First(i => i.Vlasnik);
                                        }
                                    }

                                    oib = os.o.OIB;
                                    tw.WriteLine(os.o.OIB + "#" + os.o.Ime + " " + os.o.Prezime + "#" + os.o.Mjesto + "#" + os.o.Ulica + " " + os.o.KucniBroj + "#" + os.o.Posta + "#" + os.o.Drzava + "#" + "" + "#" + "");
                                }

                                foreach (var stavka in db.RACUNI_STAVKEs.Where(i => i.IDRacuna == r.IDRacuna))
                                {
                                    string kol    = stavka.Kolicina.ToString("N3");
                                    string cijena = stavka.Cijena.ToString("N4"); //.Replace(".", "");

                                    if (stavka.Ukupno < 0)
                                    {
                                        kol = "-" + kol;
                                    }

                                    if (stavka.Cijena < 0)
                                    {
                                        cijena = (stavka.Cijena * -1).ToString("N4"); //.Replace(".", "");
                                    }

                                    if (cijena.Contains(".") && cijena.Contains(","))
                                    {
                                        cijena = cijena.Replace(".", "");
                                    }
                                    else if (cijena.Contains(".") && !cijena.Contains(","))
                                    {
                                        cijena = cijena.Replace(".", ",");
                                    }

                                    rac.WriteLine("05" + "#" + "7P" + "#" + oib + "#" + r.PozivNaBroj + "#" + r.Datum.ToString("yyMMdd") + "#" + dospijece + "#" + sifrastavke.First(i => i.Value == stavka.IDOpisaStavke).Text + "#" + kol +
                                                  "#" + cijena + "#300000#300020" + "#" + r.BrojRacuna + " " + r.Godina.ToString().Replace("20", "") + " " + registracija);
                                }
                            }

                            rac.Close();
                        }

                        tw.Close();
                    }

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

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

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

                    if (poslano)
                    {
                        //foreach (RACUNI r in racuni)
                        //{
                        //    r.Prenesen = true;
                        //    db.SubmitChanges();
                        //}

                        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);
            }
        }