public string AddPbcnetRecords(string delsystem, int leveranceid, int pbsfilesid) { int antal; int pbcnetrecords; DateTime transmisionsdato; int idlev; string filename; string rec; pbcnetrecords = (from h in Program.dbData3060.tblpbsfiles where h.pbsfilesid == pbsfilesid & (h.seqnr == 0 | h.seqnr == 9999) select h).Count(); if (pbcnetrecords == 0) { // Find antal records antal = (from h in Program.dbData3060.tblpbsfiles where h.pbsfilesid == pbsfilesid & h.seqnr != 0 & h.seqnr != 9999 select h).Count(); transmisionsdato = DateTime.Now; idlev = Program.dbData3060.nextval("idlev"); tblpbsfilename rec_pbsfiles = (from h in Program.dbData3060.tblpbsfilenames where h.id == pbsfilesid select h).First(); rec = write00(delsystem, transmisionsdato, idlev, leveranceid); tblpbsfile rec_pbsfile = new tblpbsfile { seqnr = 0, data = rec }; rec_pbsfiles.tblpbsfiles.Add(rec_pbsfile); rec = write90(delsystem, transmisionsdato, idlev, leveranceid, antal); rec_pbsfile = new tblpbsfile { seqnr = 9999, data = rec }; rec_pbsfiles.tblpbsfiles.Add(rec_pbsfile); Program.dbData3060.SubmitChanges(); filename = "D"; filename += lpad(String.Format("{0:yyMMdd}", transmisionsdato), 6, '?'); filename += lpad(idlev, 2, '0'); filename += "."; filename += rpad(delsystem, 3, '_'); } else { filename = "Unknown"; } return(filename); }
public int ReadFraPbsFile() { string FraPBSFolderPath; DirectoryInfo fld; FileStream ts; string ln; Program.memPbsnetdir = null; //opret ny memPbsnetdir var rec_regnskab = Program.qryAktivRegnskab(); FraPBSFolderPath = rec_regnskab.FraPBS; fld = new DirectoryInfo(FraPBSFolderPath); foreach (FileInfo f in fld.GetFiles()) { recPbsnetdir rec = new recPbsnetdir { Type = 8, Path = f.Directory.Name, Filename = f.Name, Size = (int)f.Length, Atime = f.LastAccessTime, Mtime = f.LastWriteTime }; Program.memPbsnetdir.Add(rec); } var leftqry_pbsnetdir = from h in Program.memPbsnetdir join d1 in Program.dbData3060.tblpbsfilenames on new { path = h.Path, filename = h.Filename } equals new { d1.path, d1.filename } into details from d1 in details.DefaultIfEmpty(new tblpbsfilename { id = -1, type = (int?)null, path = null, filename = null, size = (int?)null, atime = (DateTime?)null, mtime = (DateTime?)null, perm = null, uid = (int?)null, gid = (int?)null }) where d1.path == null && d1.filename == null select h; int AntalFiler = leftqry_pbsnetdir.Count(); if (leftqry_pbsnetdir.Count() > 0) { foreach (var rec_pbsnetdir in leftqry_pbsnetdir) { tblpbsfilename m_rec_pbsfiles = new tblpbsfilename { type = rec_pbsnetdir.Type, path = rec_pbsnetdir.Path, filename = rec_pbsnetdir.Filename, size = rec_pbsnetdir.Size, atime = rec_pbsnetdir.Atime, mtime = rec_pbsnetdir.Mtime, perm = rec_pbsnetdir.Perm, uid = rec_pbsnetdir.Uid, gid = rec_pbsnetdir.Gid }; Program.dbData3060.tblpbsfilenames.InsertOnSubmit(m_rec_pbsfiles); string varFromFile = FraPBSFolderPath + rec_pbsnetdir.Filename; int seqnr = 0; ts = new FileStream(varFromFile, FileMode.Open, FileAccess.Read, FileShare.None); ln = null; using (StreamReader sr = new StreamReader(ts, Encoding.Default)) { while ((ln = sr.ReadLine()) != null) { if (((seqnr == 0) && !(ln.Substring(0, 6) == "PBCNET")) || (seqnr > 0)) { seqnr++; } m_rec_pbsfile = new tblpbsfile { seqnr = seqnr, data = ln }; m_rec_pbsfiles.tblpbsfiles.Add(m_rec_pbsfile); } } m_rec_pbsfiles.transmittime = DateTime.Now; Program.dbData3060.SubmitChanges(); } } Program.dbData3060.SubmitChanges(); return(AntalFiler); }
public void krdfaktura_overfoersel_action(int lobnr) { string rec; int seq = 0; int wleveranceid; DateTime wdispositionsdato; int whour; int wbankdage; // Betalingsoplysninger int belobint; // Tællere int antalos5; // Antal OS5: Antal foranstående OS5 records int belobos5; // Beløb: Nettobeløb i OS5 records int antalsek; // Antal sektioner i leverancen int antalos5tot; // Antal OS5: Antal foranstående OS5 records int belobos5tot; // Beløb: Nettobeløb i OS5 records whour = DateTime.Now.Hour; if (whour > 17) { wbankdage = 3; } else { wbankdage = 2; } wdispositionsdato = clsOverfoersel.bankdageplus(DateTime.Now, wbankdage); antalos5 = 0; belobos5 = 0; antalsek = 0; antalos5tot = 0; belobos5tot = 0; { var antal = (from c in Program.dbData3060.tbltilpbs where c.id == lobnr select c).Count(); if (antal == 0) { throw new Exception("101 - Der er ingen PBS forsendelse for id: " + lobnr); } } { var antal = (from c in Program.dbData3060.tbltilpbs where c.id == lobnr && c.pbsforsendelseid != null select c).Count(); if (antal > 0) { throw new Exception("102 - Pbsforsendelse for id: " + lobnr + " er allerede sendt"); } } { var antal = (from c in Program.dbData3060.tbloverforsels where c.tilpbsid == lobnr select c).Count(); if (antal == 0) { throw new Exception("103 - Der er ingen pbs transaktioner for tilpbsid: " + lobnr); } } var rsttil = (from c in Program.dbData3060.tbltilpbs where c.id == lobnr select c).First(); if (rsttil.udtrukket == null) { rsttil.udtrukket = DateTime.Now; } if (rsttil.bilagdato == null) { rsttil.bilagdato = rsttil.udtrukket; } if (rsttil.delsystem == null) { rsttil.delsystem = "OS1"; } if (rsttil.leverancetype != null) { rsttil.leverancetype = null; } Program.dbData3060.SubmitChanges(); wleveranceid = Program.dbData3060.nextval("leveranceid"); tblpbsforsendelse rec_pbsforsendelse = new tblpbsforsendelse { delsystem = rsttil.delsystem, leverancetype = rsttil.leverancetype, oprettetaf = "Udb", oprettet = DateTime.Now, leveranceid = wleveranceid }; Program.dbData3060.tblpbsforsendelses.InsertOnSubmit(rec_pbsforsendelse); rec_pbsforsendelse.tbltilpbs.Add(rsttil); tblpbsfilename rec_pbsfiles = new tblpbsfilename(); rec_pbsforsendelse.tblpbsfilenames.Add(rec_pbsfiles); tblkreditor krd = (from k in Program.dbData3060.tblkreditors where k.delsystem == rsttil.delsystem select k).First(); // -- Leverance Start - OS1 // - rstkrd.Datalevnr - Dataleverandørnr.: Dataleverandørens SE-nummer // - wleveranceid - Leveranceidentifikation: Løbenummer efter eget valg rec = writeOS1(krd.datalevnr, wleveranceid); tblpbsfile rec_pbsfile = new tblpbsfile { seqnr = ++seq, data = rec }; rec_pbsfiles.tblpbsfiles.Add(rec_pbsfile); var qrydeb = from h in Program.dbData3060.tbloverforsels where h.tilpbsid == lobnr select h; // Start loop over betalinger i tbloverforsel int testantal = qrydeb.Count(); foreach (tbloverforsel rec_overfoersel in qrydeb) { DateTime Betalingsdato = (rec_overfoersel.betalingsdato == null) ? wdispositionsdato : (DateTime)rec_overfoersel.betalingsdato; if (Betalingsdato < wdispositionsdato) { Betalingsdato = wdispositionsdato; } rec_overfoersel.betalingsdato = Betalingsdato; //opdater aktuel betalingsdato // Sektion start – (OS2) antalos5 = 0; belobos5 = 0; // -- OS2 // - Betalingsdato - Dispositionsdato // - krd.regnr - Reg.nr.: Overførselsregistreringsnummer // - krd.kontonr - Kontonr.: Overførselskontonummer // - krd.datalevnr - Dataleverandørnr.: Dataleverandørens SE-nummer rec = writeOS2(Betalingsdato, krd.regnr, krd.kontonr, krd.datalevnr); rec_pbsfile = new tblpbsfile { seqnr = ++seq, data = rec }; rec_pbsfiles.tblpbsfiles.Add(rec_pbsfile); ++antalsek; // -- Forfald betaling if (rec_overfoersel.advisbelob > 0) { belobint = (int)(rec_overfoersel.advisbelob * ((decimal)100)); belobos5 = belobos5 + belobint; belobos5tot = belobos5tot + belobint; } else { belobint = 0; } // -- OS5 // - debinfo.bankregnr - Betalingsmodtager registreringsnummer // - debinfo.bankkontonr - Betalingsmodtager kontonummer // - belobint - Beløb: Beløb i øre uden fortegn // - Betalingsdato - Dispositionsdato // - krd.regnr - Reg.nr.: Overførselsregistreringsnummer // - krd.kontonr - Kontonr.: Overførselskontonummer // - deb.advistekst - Tekst på Betalingsmodtagers kontoudtog // - deb.SFakID - Ref til betalingsmodtager til eget brug rec = writeOS5(rec_overfoersel.bankregnr, rec_overfoersel.bankkontonr, belobint, Betalingsdato, krd.regnr, krd.kontonr, rec_overfoersel.advistekst, (int)rec_overfoersel.SFakID); rec_pbsfile = new tblpbsfile { seqnr = ++seq, data = rec }; rec_pbsfiles.tblpbsfiles.Add(rec_pbsfile); antalos5++; antalos5tot++; // -- Sektion s**t – (OS8) // - OS8 // - antalos5 - Antal 042: Antal foranstående 042 records // - belobos5 - Beløb: Nettobeløb i 042 records // - Betalingsdato - Dispositionsdato // - krd.regnr - Reg.nr.: Overførselsregistreringsnummer // - krd.kontonr - Kontonr.: Overførselskontonummer // - krd.datalevnr - Dataleverandørnr.: Dataleverandørens SE-nummer rec = writeOS8(antalos5, belobos5, Betalingsdato, krd.regnr, krd.kontonr, krd.datalevnr); rec_pbsfile = new tblpbsfile { seqnr = ++seq, data = rec }; rec_pbsfiles.tblpbsfiles.Add(rec_pbsfile); } // -- Leverance s**t - (OS9) // --OS9 // - antalos5tot - Antal 042: Antal foranstående 042 records // - belobos5tot - Beløb: Nettobeløb i 042 records // - krd.datalevnr - Dataleverandørnr.: Dataleverandørens SE-nummer rec = writeOS9(antalos5tot, belobos5tot, krd.datalevnr); rec_pbsfile = new tblpbsfile { seqnr = ++seq, data = rec }; rec_pbsfiles.tblpbsfiles.Add(rec_pbsfile); rsttil.udtrukket = DateTime.Now; rsttil.leverancespecifikation = wleveranceid.ToString(); Program.dbData3060.SubmitChanges(); }
public int ReadFraSFtp() { Program.memPbsnetdir = null; //opret ny memPbsnetdir // Iterate over the files. foreach (SftpFile fileObj in m_sftp.ListDirectory(m_rec_sftp.outbound)) { if (fileObj.Name != "." && fileObj.Name != "..") { recPbsnetdir rec = new recPbsnetdir { Type = 8, Path = m_rec_sftp.outbound, Filename = fileObj.Name, Size = (int)fileObj.Length, Atime = fileObj.LastAccessTime, Mtime = fileObj.LastWriteTime, Gid = fileObj.GroupId, Uid = fileObj.UserId, Perm = "" }; Program.memPbsnetdir.Add(rec); } } var leftqry_pbsnetdir = from h in Program.memPbsnetdir //join d1 in Program.dbData3060.Tblpbsfiles on new { h.Path, h.Filename } equals new { d1.Path, d1.Filename } into details //from d1 in details.DefaultIfEmpty(new Tblpbsfiles { Id = -1, Type = (int?)null, Path = null, Filename = null, Size = (int?)null, Atime = (DateTime?)null, Mtime = (DateTime?)null, Perm = null, Uid = (int?)null, Gid = (int?)null }) //where d1.Path == null && d1.Filename == null select h; int AntalFiler = leftqry_pbsnetdir.Count(); if (leftqry_pbsnetdir.Count() > 0) { foreach (var rec_pbsnetdir in leftqry_pbsnetdir) { tblpbsfilename m_rec_pbsfiles = new tblpbsfilename { type = rec_pbsnetdir.Type, path = rec_pbsnetdir.Path, filename = rec_pbsnetdir.Filename, size = rec_pbsnetdir.Size, atime = rec_pbsnetdir.Atime, mtime = rec_pbsnetdir.Mtime, perm = rec_pbsnetdir.Perm, uid = rec_pbsnetdir.Uid, gid = rec_pbsnetdir.Gid }; Program.dbData3060.tblpbsfilenames.InsertOnSubmit(m_rec_pbsfiles); //*********************************************************************** string fullpath = rec_pbsnetdir.Path + "/" + rec_pbsnetdir.Filename; int numBytes = (int)rec_pbsnetdir.Size; byte[] b_data = new byte[numBytes]; MemoryStream stream = new MemoryStream(b_data, true); m_sftp.DownloadFile(fullpath, stream); sendAttachedFile(rec_pbsnetdir.Filename, b_data, false); char[] c_data = System.Text.Encoding.GetEncoding("windows-1252").GetString(b_data).ToCharArray(); string filecontens = new string(c_data); string filecontens2 = filecontens.TrimEnd('\n'); string filecontens3 = filecontens2.TrimEnd('\r'); string filecontens4 = filecontens3.TrimEnd('\n'); string[] lines = filecontens4.Split('\n'); string ln = null; int seqnr = 0; string ln0_6; for (int idx = 0; idx < lines.Count(); idx++) { ln = lines[idx].TrimEnd('\r'); try { ln0_6 = ln.Substring(0, 6); } catch { ln0_6 = ""; } if (((seqnr == 0) && !(ln0_6 == "PBCNET")) || (seqnr > 0)) { seqnr++; } if (ln.Length > 0) { m_rec_pbsfile = new tblpbsfile { seqnr = seqnr, data = ln }; m_rec_pbsfiles.tblpbsfiles.Add(m_rec_pbsfile); } } m_rec_pbsfiles.transmittime = DateTime.Now; Program.dbData3060.SubmitChanges(); //*********************************************************************************** } } Program.dbData3060.SubmitChanges(); return(AntalFiler); }