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(); }
private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e) { 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(); } DateTime SidsteDato; try { SidsteDato = (from b in ((IList <tblwbilag>) this.tblwbilagBindingSource.List) select b.dato).Last(); } catch { SidsteDato = DateTime.Today; } tblwbilag recwBilag = new tblwbilag { bilag = bilagnr, dato = SidsteDato }; try { this.tblwbilagBindingSource.Add(recwBilag); this.tblwbilagBindingSource.MoveLast(); } catch { //throw; } }
public void AddNyTemplateKladde(tbltemplate recTemplate, tblbankkonto recBankkonto) { 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(); } DateTime BankDato; try { BankDato = (DateTime)recBankkonto.dato; } catch { BankDato = DateTime.Today; } tblwbilag recwBilag = new tblwbilag { bilag = bilagnr, dato = BankDato }; string WrkTekst; if ((recTemplate.tekst != null) && (recTemplate.tekst.Length > 0)) { WrkTekst = recTemplate.tekst; } else { WrkTekst = recBankkonto.tekst; } string WrkAfstemningskonto; if ((recTemplate.afstemningskonto != null) && (recTemplate.afstemningskonto.Length > 0)) { WrkAfstemningskonto = recTemplate.afstemningskonto; } else { try { WrkAfstemningskonto = (from w in Program.dbDataTransSumma.tblkontoudtogs where w.pid == recBankkonto.bankkontoid select w).First().afstemningskonto; } catch { WrkAfstemningskonto = ""; } } string WrkMomskode; if ((recTemplate.momskode != null) && (recTemplate.momskode.Length > 0)) { WrkMomskode = recTemplate.momskode; } else { try { WrkMomskode = (from w in Program.karKontoplan where w.Kontonr == recTemplate.konto select w).First().Moms; } catch { WrkMomskode = ""; } } tblwkladder recWkladder = new tblwkladder { tekst = WrkTekst, afstemningskonto = WrkAfstemningskonto, belob = (decimal)recBankkonto.belob, konto = recTemplate.konto, momskode = WrkMomskode }; recwBilag.tblwkladders.Add(recWkladder); this.tblwbilagBindingSource.Add(recwBilag); this.tblwbilagBindingSource.MoveLast(); }
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); }
private void pasteCsv(IDataObject dataObject) { object lDataObjectGetData = dataObject.GetData(DataFormats.CommaSeparatedValue); string csv = lDataObjectGetData as string; if (csv == null) { System.IO.MemoryStream stream = lDataObjectGetData as System.IO.MemoryStream; if (stream != null) { csv = new System.IO.StreamReader(stream).ReadToEnd(); } } if (csv == null) { return; } Regex regexCommaCvs = new Regex(@"""(.*?)"",|([^,]*),|(.*)$"); Regex regexSimicolonCvs = new Regex(@"""(.*?)"";|([^;]*);|(.*)$"); string[] sep = { "\r\n", "\n" }; string[] lines = csv.TrimEnd('\0').Split(sep, StringSplitOptions.RemoveEmptyEntries); int row = tblwkladderDataGridView.NewRowIndex; tblwbilag recWbilag = (tblwbilag)tblwbilagBindingSource.Current; foreach (string line in lines) { if (line.Length > 0) { try { int i = 0; int iMax = 8; string[] value = new string[iMax]; foreach (Match m in regexCommaCvs.Matches(line)) { for (int j = 1; j <= 3; j++) { if (m.Groups[j].Success) { if (i < iMax) { value[i++] = m.Groups[j].ToString(); break; } } } } if (value[3] == null) //belob { i = 0; value = new string[iMax]; foreach (Match m in regexSimicolonCvs.Matches(line)) { for (int j = 1; j <= 3; j++) { if (m.Groups[j].Success) { if (i < iMax) { value[i++] = m.Groups[j].ToString(); break; } } } } } if (value[3] != null) //belob { tblwkladder recWkladder; if (Program.karRegnskab.MomsPeriode() == 2) // Ingen moms { recWkladder = new tblwkladder { tekst = value[1], afstemningskonto = value[2], belob = Microsoft.VisualBasic.Information.IsNumeric(value[3]) ? decimal.Parse(value[3]) : (decimal?)null, konto = Microsoft.VisualBasic.Information.IsNumeric(value[4]) ? int.Parse(value[4]) : (int?)null, faktura = Microsoft.VisualBasic.Information.IsNumeric(value[5]) ? int.Parse(value[5]) : (int?)null }; } else { recWkladder = new tblwkladder { tekst = value[1], afstemningskonto = value[2], belob = Microsoft.VisualBasic.Information.IsNumeric(value[3]) ? decimal.Parse(value[3]) : (decimal?)null, konto = Microsoft.VisualBasic.Information.IsNumeric(value[4]) ? int.Parse(value[4]) : (int?)null, momskode = value[5], faktura = Microsoft.VisualBasic.Information.IsNumeric(value[6]) ? int.Parse(value[6]) : (int?)null }; } tblwkladderBindingSource.Insert(row, recWkladder); } row++; } catch (FormatException) { //TODO: log exceptions using a nice standard logging library tblwkladderDataGridView.CancelEdit(); } } else { break; } tblwkladderBindingSource.MoveFirst(); } }