private void AddButton_Click(object sender, EventArgs e) { Tblwbilag rec_wbilag = new Tblwbilag { Bilag = ++Program.BS1_SidsteNr, Dato = DateTime.Now }; Program.dbHafsjoldData.Tblwbilag.InsertOnSubmit(rec_wbilag); int Pid = int.Parse(this.AddButton.Tag.ToString()); var qry = from k in Program.dbHafsjoldData.Tblkladder where k.Bilagpid == Pid orderby k.Id select k; foreach (Tblkladder rec_kladder in qry) { Tblwkladder rec_wkladder = new Tblwkladder { Tekst = rec_kladder.Tekst, Afstemningskonto = rec_kladder.Afstemningskonto, Belob = rec_kladder.Belob, Konto = rec_kladder.Konto, Momskode = rec_kladder.Momskode, Faktura = rec_kladder.Faktura }; rec_wbilag.Tblwkladder.Add(rec_wkladder); } Program.dbHafsjoldData.SubmitChanges(); Program.frmNyKladde.RefreshData(); }
public void AddNyKladde(Tblbilag recBilag, Tblbankkonto recBankkonto) { var qry = from k in recBilag.Tblkladder select new Tblwkladder { Tekst = k.Tekst, Afstemningskonto = k.Afstemningskonto, Belob = k.Belob, Konto = k.Konto, Momskode = k.Momskode, Faktura = k.Faktura }; 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(); } 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.Tblwkladder.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; } }
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; int AntalLinier = recBilag.Tblkladder.Count; if (AntalLinier <= 3) { foreach (Tblkladder recKladder in recBilag.Tblkladder) { 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")); 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.Tblwkladder.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 : BankBelob, Konto = AndenKontoKonto }; recwBilag.Tblwkladder.Add(recWkladder); this.tblwbilagBindingSource.Add(recwBilag); return(true); } if ((AntalLinier == 1) && (!bBankKonto) && (bAndenKonto) && (bAfstem)) { Tblwkladder recWkladder = new Tblwkladder { Tekst = AndenKontoTekst, Afstemningskonto = AndenKontoAfstemningskonto, Belob = (IsFound_BankKontoudtog) ? (decimal)recBankkonto.Belob : BankBelob, Konto = AndenKontoKonto, Momskode = MK }; recwBilag.Tblwkladder.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 (row < tblwkladderDataGridView.RowCount && 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.Add(recWkladder); } row++; } catch (FormatException) { //TODO: log exceptions using a nice standard logging library tblwkladderDataGridView.CancelEdit(); } } else { break; } tblwkladderBindingSource.MoveFirst(); } }
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.Tblkontoudtog 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.Tblwkladder.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.Tblkladder select new Tblwkladder { Tekst = k.Tekst, Afstemningskonto = k.Afstemningskonto, Belob = k.Belob, Konto = k.Konto, Momskode = k.Momskode, Faktura = k.Faktura }; int AntalLinier = recBilag.Tblkladder.Count; if ((!IsFound_BankKontoudtog) || (IsFound_BankKontoudtog && recBankkonto.Bankkontoid == 1)) //BANK { if (AntalLinier <= 3) { foreach (Tblkladder recKladder in recBilag.Tblkladder) { 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.Tblwkladder.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.Tblwkladder.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.Tblwkladder.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.Tblwkladder.Add(recWkladder); this.tblwbilagBindingSource.Add(recwBilag); return(true); } } } else if (IsFound_BankKontoudtog && recBankkonto.Bankkontoid == 2) //MASTERCARD { if (AntalLinier <= 3) { foreach (Tblkladder recKladder in recBilag.Tblkladder) { 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.Tblwkladder.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.Tblwkladder.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.Tblwkladder.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.Tblwkladder.Add(recWkladder); this.tblwbilagBindingSource.Add(recwBilag); return(true); } } } return(false); }