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