public static void BilagsudskriftPDF() { tblbilag[] Bilag; var qry = from b in Program.dbDataTransSumma.tblbilags where b.udskriv == true && b.tbltrans.Count() > 0 select b; int count = qry.Count(); int iMax = 99999; if (count > iMax) { Bilag = new tblbilag[iMax]; } else { Bilag = new tblbilag[count]; } int i = 0; foreach (var b in qry) { UdskrivBilag(b); b.udskriv = false; if (i >= iMax) { break; } } Program.dbDataTransSumma.SubmitChanges(); }
public void AddNyKladde(tblbilag recBilag, tblbankkonto recBankkonto) { var qry = from k in recBilag.tblkladders select new tblwkladder { tekst = k.tekst, afstemningskonto = k.afstemningskonto, belob = k.belob, konto = k.konto, momskode = k.momskode, faktura = k.faktura, sag = k.sag }; int antal = qry.Count(); int bilagnr = 0; try { bilagnr = (from b in ((IList <tblwbilag>) this.tblwbilagBindingSource.List) select b.bilag).Max(); bilagnr++; } catch { bilagnr = Program.karStatus.BS1_NæsteNr(null); } DateTime BankDato; try { BankDato = (DateTime)recBankkonto.dato; } catch { BankDato = DateTime.Today; } tblwbilag recwBilag = new tblwbilag { bilag = bilagnr, dato = BankDato }; if (!ReducerBilag(recwBilag, recBilag, recBankkonto)) { foreach (var k in qry) { recwBilag.tblwkladders.Add(k); } this.tblwbilagBindingSource.Add(recwBilag); } this.tblwbilagBindingSource.MoveLast(); }
public static void Bilagsudskrift(bool bDialog) { tblbilag[] Bilag; var qry = from b in Program.dbDataTransSumma.tblbilags where b.udskriv == true && b.tbltrans.Count() > 0 select b; int count = qry.Count(); int iMax = 99999; if (count > iMax) { Bilag = new tblbilag[iMax]; } else { Bilag = new tblbilag[count]; } int i = 0; foreach (var b in qry) { Bilag[i++] = b; b.udskriv = false; if (i >= iMax) { break; } } PrintDialog dialog = new PrintDialog(); if (bDialog) { if (dialog.ShowDialog() != true) { return; } } var paginator = new BilagsudskriftPaginator(Bilag, new Size(dialog.PrintableAreaWidth, dialog.PrintableAreaHeight)); dialog.PrintDocument(paginator, "Bilagsudskrift"); Program.dbDataTransSumma.SubmitChanges(); }
private void cmdKopier_Click(object sender, EventArgs e) { FrmMain frmMain = this.ParentForm as FrmMain; tblbankkonto recBankkonto = null; try { FrmBankkontoudtog frmBankkontoudtog = frmMain.GetChild("Bank kontoudtog") as FrmBankkontoudtog; recBankkonto = frmBankkontoudtog.GetrecBankkonto(); } catch { } try { FrmNyekladder frmNyekladder = frmMain.GetChild("Nye kladder") as FrmNyekladder; tblbilag recBilag = this.tblbilagBindingSource.Current as tblbilag; frmNyekladder.AddNyKladde(recBilag, recBankkonto); } catch { } }
private void importerTransaktionerToolStripMenuItem_Click(object sender, EventArgs e) { int? lastBilag = null; string Kontonavn = null; tblbilag recBilag = null; var qryPosteringer = from p in Program.karPosteringer join b in Program.dbDataTransSumma.tbltrans on new { p.Regnskabid, p.Id, p.Nr } equals new { Regnskabid = b.regnskabid, Id = b.id, Nr = b.nr } into tbltrans from b in tbltrans.DefaultIfEmpty(new tbltran { pid = 0, regnskabid = null, id = null, nr = null }) where b.pid == 0 orderby p.Regnskabid, p.Bilag, p.Id, p.Nr select p; int antal = qryPosteringer.Count(); foreach (var p in qryPosteringer) { if ((!(p.Bilag == null)) && (lastBilag != p.Bilag)) { try { recBilag = (from b in Program.dbDataTransSumma.tblbilags where b.regnskabid == p.Regnskabid && b.bilag == p.Bilag select b).First(); } catch { recBilag = new tblbilag { regnskabid = p.Regnskabid, bilag = p.Bilag, dato = p.Dato, udskriv = true, }; Program.dbDataTransSumma.tblbilags.InsertOnSubmit(recBilag); } } try { Kontonavn = (from b in Program.karKontoplan where b.Kontonr == p.Konto select b.Kontonavn).First(); } catch { Kontonavn = null; } tbltran recTrans = new tbltran { regnskabid = p.Regnskabid, tekst = p.Tekst, kontonr = p.Konto, kontonavn = Kontonavn, id = p.Id, nr = p.Nr, belob = p.Nettobeløb + p.Momsbeløb, moms = p.Momsbeløb, debet = (p.Nettobeløb >= 0) ? p.Nettobeløb : (decimal?)null, kredit = (p.Nettobeløb < 0) ? -p.Nettobeløb : (decimal?)null, }; Program.dbDataTransSumma.tbltrans.InsertOnSubmit(recTrans); if (!(p.Bilag == 0)) { recBilag.tbltrans.Add(recTrans); } lastBilag = p.Bilag; } Program.dbDataTransSumma.SubmitChanges(); lastBilag = 0; var qryKladder = from k in Program.karKladder join b in Program.dbDataTransSumma.tblkladders on new { k.Regnskabid, k.Id } equals new { Regnskabid = b.regnskabid, Id = b.id } into tblkladder from b in tblkladder.DefaultIfEmpty(new tblkladder { pid = 0, regnskabid = null, id = null }) where b.pid == 0 orderby k.Regnskabid, k.Bilag, k.Id select k; antal = qryKladder.Count(); foreach (var k in qryKladder) { if ((!(k.Bilag == null)) && (lastBilag != k.Bilag)) { try { recBilag = (from b in Program.dbDataTransSumma.tblbilags where b.regnskabid == k.Regnskabid && b.bilag == k.Bilag select b).First(); } catch { recBilag = new tblbilag { regnskabid = k.Regnskabid, bilag = k.Bilag, dato = k.Dato, udskriv = true, }; Program.dbDataTransSumma.tblbilags.InsertOnSubmit(recBilag); } } tblkladder recKladder = new tblkladder { regnskabid = k.Regnskabid, tekst = k.Tekst, afstemningskonto = k.Afstemningskonto, belob = k.Belob, konto = k.Konto, momskode = k.Momskode, faktura = k.Faktura, id = k.Id, }; Program.dbDataTransSumma.tblkladders.InsertOnSubmit(recKladder); if (!(k.Bilag == 0)) { recBilag.tblkladders.Add(recKladder); } lastBilag = k.Bilag; } Program.dbDataTransSumma.SubmitChanges(); }
public override DocumentPage GetPage(int pageNumber) { tblbilag Bilag = null; int wpageNumber = 0; for (int i = 0; i < _BilagPages.Length; i++) { if ((pageNumber >= wpageNumber) && (pageNumber < wpageNumber + _BilagPages[i])) { Bilag = new tblbilag { pid = _Bilag[i].pid, regnskabid = _Bilag[i].regnskabid, bilag = _Bilag[i].bilag, dato = _Bilag[i].dato, udskriv = _Bilag[i].udskriv }; int jMin = (pageNumber - wpageNumber) * _RowsPerPage; int jMax = Math.Min(_Bilag[i].tbltrans.Count(), jMin + _RowsPerPage); Debug.Assert(jMin >= 0); for (int j = jMin; j < jMax; j++) { tbltran Trans = new tbltran { pid = _Bilag[i].tbltrans[j].pid, regnskabid = _Bilag[i].tbltrans[j].regnskabid, skjul = _Bilag[i].tbltrans[j].skjul, bilagpid = _Bilag[i].tbltrans[j].bilagpid, tekst = _Bilag[i].tbltrans[j].tekst, kontonr = _Bilag[i].tbltrans[j].kontonr, kontonavn = _Bilag[i].tbltrans[j].kontonavn, moms = _Bilag[i].tbltrans[j].moms, debet = _Bilag[i].tbltrans[j].debet, kredit = _Bilag[i].tbltrans[j].kredit, id = _Bilag[i].tbltrans[j].id, nr = _Bilag[i].tbltrans[j].nr, belob = _Bilag[i].tbltrans[j].belob, afstem = _Bilag[i].tbltrans[j].afstem, }; Bilag.tbltrans.Add(Trans); } break; } else { wpageNumber += _BilagPages[i]; } } var page = new PageElement(Bilag) { Width = PageSize.Width, Height = PageSize.Height, }; page.Measure(PageSize); page.Arrange(new Rect(new Point(0, 0), PageSize)); return(new DocumentPage(page)); }
public PageElement(tblbilag Bilag) { Margin = new Thickness(PageMargin); _Bilag = Bilag; }
private bool ReducerBilag(tblwbilag recwBilag, tblbilag recBilag, tblbankkonto recBankkonto) { bool IsFound_BankKontoudtog = (recBankkonto != null); decimal BankBelob = 0; decimal MomsBelob = 0; decimal AndenKontoBelob = 0; int? AndenKontoKonto = null; string AndenKontoTekst = ""; string AndenKontoMomskode = ""; string AndenKontoAfstemningskonto = ""; string MK = ""; bool bBankKonto = false; bool bMomsKonto = false; bool bAndenKonto = false; bool bAfstem = false; bool bMomskode = false; var qry = from k in recBilag.tblkladders select new tblwkladder { tekst = k.tekst, afstemningskonto = k.afstemningskonto, belob = k.belob, konto = k.konto, momskode = k.momskode, faktura = k.faktura }; int AntalLinier = recBilag.tblkladders.Count; if ((!IsFound_BankKontoudtog) || (IsFound_BankKontoudtog && ((recBankkonto.bankkontoid == 1) || (recBankkonto.bankkontoid == 3)))) //BANK { if (AntalLinier <= 3) { foreach (tblkladder recKladder in recBilag.tblkladders) { if ((recKladder.afstemningskonto != null) && (recKladder.afstemningskonto != "")) { bAfstem = true; } if (recKladder.konto != null) { switch (recKladder.konto) { case 58000: bBankKonto = true; BankBelob = (decimal)recKladder.belob; break; case 66100: bMomsKonto = true; MomsBelob = (decimal)recKladder.belob; MK = "S25"; break; case 66200: bMomsKonto = true; MomsBelob = (decimal)recKladder.belob; MK = "K25"; break; default: bAndenKonto = true; AndenKontoBelob = (decimal)recKladder.belob; AndenKontoTekst = recKladder.tekst; AndenKontoKonto = (int)recKladder.konto; if ((recKladder.afstemningskonto != null) && (recKladder.afstemningskonto != "")) { AndenKontoAfstemningskonto = recKladder.afstemningskonto; } if ((recKladder.momskode != null) && (recKladder.momskode != "")) { AndenKontoMomskode = recKladder.momskode; } break; } } if ((recKladder.momskode != null) && (recKladder.momskode != "")) { bMomskode = true; } } if ((AntalLinier == 3) && (bBankKonto) && (bMomsKonto) && (bAndenKonto) && (!bAfstem) && (!bMomskode)) { //decimal MomsBelobDif = -MomsBelob + (AndenKontoBelob * decimal.Parse(" 0,25")); decimal momspct = KarMoms.getMomspct(MK) / 100; decimal MomsBelobDif = -MomsBelob + (AndenKontoBelob * momspct); if ((MomsBelobDif > -decimal.Parse(" 0,01")) && (MomsBelobDif < decimal.Parse(" 0,01"))) { tblwkladder recWkladder = new tblwkladder { tekst = AndenKontoTekst, afstemningskonto = "Bank", belob = (IsFound_BankKontoudtog) ? (decimal)recBankkonto.belob : BankBelob, konto = AndenKontoKonto, momskode = MK }; recwBilag.tblwkladders.Add(recWkladder); this.tblwbilagBindingSource.Add(recwBilag); return(true); } } if ((AntalLinier == 2) && (bBankKonto) && (!bMomsKonto) && (bAndenKonto) && (!bAfstem) && (!bMomskode)) { tblwkladder recWkladder = new tblwkladder { tekst = AndenKontoTekst, afstemningskonto = "Bank", belob = (IsFound_BankKontoudtog) ? (decimal)recBankkonto.belob : AndenKontoBelob, konto = AndenKontoKonto }; recwBilag.tblwkladders.Add(recWkladder); this.tblwbilagBindingSource.Add(recwBilag); return(true); } if ((AntalLinier == 2) && (bBankKonto) && (bAndenKonto) && (!bAfstem)) { foreach (tblwkladder k in qry) { if (IsFound_BankKontoudtog) { if (k.konto == 58000) { k.belob = -(decimal)recBankkonto.belob; } else { k.belob = (decimal)recBankkonto.belob; } } recwBilag.tblwkladders.Add(k); } this.tblwbilagBindingSource.Add(recwBilag); return(true); } if ((AntalLinier == 1) && (!bBankKonto) && (bAndenKonto) && (bAfstem)) { string WrkAfstemningskonto; if (AndenKontoAfstemningskonto == "MasterCard") { WrkAfstemningskonto = "Bank"; } else { WrkAfstemningskonto = AndenKontoAfstemningskonto; } tblwkladder recWkladder = new tblwkladder { tekst = AndenKontoTekst, afstemningskonto = WrkAfstemningskonto, belob = (IsFound_BankKontoudtog) ? (decimal)recBankkonto.belob : AndenKontoBelob, konto = AndenKontoKonto, momskode = AndenKontoMomskode }; recwBilag.tblwkladders.Add(recWkladder); this.tblwbilagBindingSource.Add(recwBilag); return(true); } } } else if (IsFound_BankKontoudtog && recBankkonto.bankkontoid == 2) //MASTERCARD { if (AntalLinier <= 3) { foreach (tblkladder recKladder in recBilag.tblkladders) { if ((recKladder.afstemningskonto != null) && (recKladder.afstemningskonto != "")) { bAfstem = true; } if (recKladder.konto != null) { switch (recKladder.konto) { case 58310: bBankKonto = true; BankBelob = (decimal)recKladder.belob; break; case 66100: bMomsKonto = true; MomsBelob = (decimal)recKladder.belob; MK = "S25"; break; case 66200: bMomsKonto = true; MomsBelob = (decimal)recKladder.belob; MK = "K25"; break; default: bAndenKonto = true; AndenKontoBelob = (decimal)recKladder.belob; AndenKontoTekst = recKladder.tekst; AndenKontoKonto = (int)recKladder.konto; if ((recKladder.afstemningskonto != null) && (recKladder.afstemningskonto != "")) { AndenKontoAfstemningskonto = recKladder.afstemningskonto; } if ((recKladder.momskode != null) && (recKladder.momskode != "")) { AndenKontoMomskode = recKladder.momskode; } break; } } if ((recKladder.momskode != null) && (recKladder.momskode != "")) { bMomskode = true; } } if ((AntalLinier == 3) && (bBankKonto) && (bMomsKonto) && (bAndenKonto) && (!bAfstem) && (!bMomskode)) { //decimal MomsBelobDif = -MomsBelob + (AndenKontoBelob * decimal.Parse(" 0,25")); decimal momspct = KarMoms.getMomspct(MK) / 100; decimal MomsBelobDif = -MomsBelob + (AndenKontoBelob * momspct); if ((MomsBelobDif > -decimal.Parse(" 0,01")) && (MomsBelobDif < decimal.Parse(" 0,01"))) { tblwkladder recWkladder = new tblwkladder { tekst = AndenKontoTekst, afstemningskonto = "MasterCard", belob = (IsFound_BankKontoudtog) ? (decimal)recBankkonto.belob : BankBelob, konto = AndenKontoKonto, momskode = MK }; recwBilag.tblwkladders.Add(recWkladder); this.tblwbilagBindingSource.Add(recwBilag); return(true); } } if ((AntalLinier == 2) && (bBankKonto) && (!bMomsKonto) && (bAndenKonto) && (!bAfstem) && (!bMomskode)) { tblwkladder recWkladder = new tblwkladder { tekst = AndenKontoTekst, afstemningskonto = "MasterCard", belob = (IsFound_BankKontoudtog) ? (decimal)recBankkonto.belob : AndenKontoBelob, konto = AndenKontoKonto }; recwBilag.tblwkladders.Add(recWkladder); this.tblwbilagBindingSource.Add(recwBilag); return(true); } if ((AntalLinier == 2) && (bBankKonto) && (bAndenKonto) && (!bAfstem)) { foreach (tblwkladder k in qry) { if (IsFound_BankKontoudtog) { if (k.konto == 58310) { k.belob = -(decimal)recBankkonto.belob; } else { k.belob = (decimal)recBankkonto.belob; } } recwBilag.tblwkladders.Add(k); } this.tblwbilagBindingSource.Add(recwBilag); return(true); } if ((AntalLinier == 1) && (!bBankKonto) && (bAndenKonto) && (bAfstem)) { string WrkAfstemningskonto; if (AndenKontoAfstemningskonto == "Bank") { WrkAfstemningskonto = "MasterCard"; } else { WrkAfstemningskonto = AndenKontoAfstemningskonto; } tblwkladder recWkladder = new tblwkladder { tekst = AndenKontoTekst, afstemningskonto = WrkAfstemningskonto, belob = (IsFound_BankKontoudtog) ? (decimal)recBankkonto.belob : AndenKontoBelob, konto = AndenKontoKonto, momskode = AndenKontoMomskode }; recwBilag.tblwkladders.Add(recWkladder); this.tblwbilagBindingSource.Add(recwBilag); return(true); } } } //******************************************************************************************* //******************************************************************************************* return(false); }
public static void UdskrivBilag(tblbilag Bilag) { int Regnskabid = (int)Bilag.regnskabid; recMemRegnskab rec_regnskab = (from r in Program.memRegnskab where r.Rid == Regnskabid select r).First(); string firma = rec_regnskab.Firmanavn; string regnskabsnavn = rec_regnskab.Navn; DateTime startdato = (DateTime)rec_regnskab.Start; DateTime slutdato = (DateTime)rec_regnskab.S**t; DateTime bilagsdato = (DateTime)Bilag.dato; int startMonth = startdato.Month; int bilagMonth = bilagsdato.Month; int regnskabsaar = slutdato.Year; int pnr; if (bilagMonth < startMonth) { pnr = bilagMonth + 12 - startMonth + 1; } else { pnr = bilagMonth - startMonth + 1; } DateTime PeriodeMonthYear = new DateTime(slutdato.Year, pnr, 1); string Periode = PeriodeMonthYear.ToString("MM"); //Create a pdf document. PdfDocument doc = new PdfDocument(); doc.DocumentInformation.Author = "Hafsjold Data Consult"; doc.DocumentInformation.Title = String.Format("Bogføringsbilag {0}", regnskabsnavn); doc.DocumentInformation.Creator = "Trans2SummaHDC"; doc.DocumentInformation.Subject = String.Format("Bilag {0}", ((int)Bilag.bilag).ToString()); doc.DocumentInformation.CreationDate = DateTime.Now; //margin PdfUnitConvertor unitCvtr = new PdfUnitConvertor(); PdfMargins margin = new PdfMargins(); margin.Top = unitCvtr.ConvertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point); margin.Bottom = margin.Top; margin.Left = unitCvtr.ConvertUnits(2f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point); margin.Right = margin.Left; // Create one page PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, margin); float width = page.Canvas.ClientSize.Width; float y = 10; //title PdfBrush brush1 = PdfBrushes.Black; PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("Arial", 16f, FontStyle.Bold)); PdfStringFormat format1 = new PdfStringFormat(PdfTextAlignment.Left); string s = String.Format("Bogføringsbilag {0}", regnskabsnavn); page.Canvas.DrawString(s, font1, brush1, 1, y, format1); y = y + font1.MeasureString(s, format1).Height; y = y + 25; PdfBrush brush2 = PdfBrushes.Black; PdfTrueTypeFont font2 = new PdfTrueTypeFont(new Font("Arial", 10f, FontStyle.Bold)); PdfStringFormat format2 = new PdfStringFormat(PdfTextAlignment.Left); s = String.Format("Dato: {0}", ((DateTime)Bilag.dato).ToShortDateString()); page.Canvas.DrawString(s, font2, brush2, 1, y, format2); PdfStringFormat format21 = new PdfStringFormat(PdfTextAlignment.Center); s = String.Format("Periode: {0}", Periode); page.Canvas.DrawString(s, font2, brush2, width / 2, y, format21); PdfStringFormat format22 = new PdfStringFormat(PdfTextAlignment.Right); s = String.Format("Bilag: {0}", ((int)Bilag.bilag).ToString()); page.Canvas.DrawString(s, font2, brush2, width, y, format22); y = y + font2.MeasureString(s, format2).Height; y = y + 25; String[][] dataSource = new String[Bilag.tbltrans.Count + 1][]; int i = 0; foreach (tbltran t in Bilag.tbltrans) { if (i == 0) { String[] headings = new String[5]; headings[0] = "Tekst"; headings[1] = "Kontonr"; headings[2] = "Kontonavn"; headings[3] = "Debet"; headings[4] = "Kredit"; dataSource[i++] = headings; } String[] datarow = new String[5]; datarow[0] = t.tekst; datarow[1] = t.kontonr.ToString(); datarow[2] = t.kontonavn; datarow[3] = t.debet != null ? ((decimal)(t.debet)).ToString("#,0.00;-#,0.00") : ""; datarow[4] = t.kredit != null ? ((decimal)(t.kredit)).ToString("#,0.00;-#,0.00") : ""; dataSource[i++] = datarow; } PdfTable table = new PdfTable(); table.Style.CellPadding = 5; //2; table.Style.HeaderSource = PdfHeaderSource.Rows; table.Style.HeaderRowCount = 1; table.Style.HeaderStyle.StringFormat = new PdfStringFormat(PdfTextAlignment.Center); table.Style.HeaderStyle.Font = new PdfTrueTypeFont(new Font("Arial", 9f, FontStyle.Bold)); table.Style.ShowHeader = true; table.Style.RepeatHeader = true; table.DataSource = dataSource; table.Columns[0].Width = width * 0.30f * width; table.Columns[0].StringFormat = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle); table.Columns[1].Width = width * 0.10f * width; table.Columns[1].StringFormat = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Middle); table.Columns[2].Width = width * 0.30f * width; table.Columns[2].StringFormat = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle); table.Columns[3].Width = width * 0.15f * width; table.Columns[3].StringFormat = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Middle); table.Columns[4].Width = width * 0.15f * width; table.Columns[4].StringFormat = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Middle); PdfLayoutResult result = table.Draw(page, new PointF(0, y)); y = y + result.Bounds.Height + 5; //Save pdf file. string BilagPath = (from r in Program.karTrans2Summa where r.key == "BilagPath" select r.value).First(); string BilagNavn = String.Format(@"Bilag {0}.pdf", ((int)Bilag.bilag).ToString()); string filename = Path.Combine(BilagPath, BilagNavn); doc.SaveToFile(filename); doc.Close(); }