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; int? AndenKontoSag = 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_cpy_kladdes = from k in recBilag.tblkladders select new tblwkladder { tekst = k.tekst, afstemningskonto = k.afstemningskonto, belob = k.belob, konto = k.konto, sag = k.sag, 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; AndenKontoSag = recKladder.sag; 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, sag = AndenKontoSag, 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, sag = AndenKontoSag }; recwBilag.tblwkladders.Add(recWkladder); this.tblwbilagBindingSource.Add(recwBilag); return(true); } if ((AntalLinier == 2) && (bBankKonto) && (bAndenKonto) && (!bAfstem)) { foreach (tblwkladder k in qry_cpy_kladdes) { 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, sag = AndenKontoSag, 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; AndenKontoSag = recKladder.sag; 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, sag = AndenKontoSag, 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, sag = AndenKontoSag }; recwBilag.tblwkladders.Add(recWkladder); this.tblwbilagBindingSource.Add(recwBilag); return(true); } if ((AntalLinier == 2) && (bBankKonto) && (bAndenKonto) && (!bAfstem)) { foreach (tblwkladder k in qry_cpy_kladdes) { 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, sag = AndenKontoSag, momskode = AndenKontoMomskode }; recwBilag.tblwkladders.Add(recWkladder); this.tblwbilagBindingSource.Add(recwBilag); return(true); } } } //******************************************************************************************* else if (IsFound_BankKontoudtog && recBankkonto.bankkontoid == 5) //PAYPAL { 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 58300: if (!bAfstem) { bBankKonto = true; BankBelob = (decimal)recKladder.belob; } else { 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; 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; AndenKontoSag = recKladder.sag; 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 = "PayPal", belob = (IsFound_BankKontoudtog) ? (decimal)recBankkonto.belob : BankBelob, konto = AndenKontoKonto, sag = AndenKontoSag, 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 = "PayPal", belob = (IsFound_BankKontoudtog) ? (decimal)recBankkonto.belob : AndenKontoBelob, konto = AndenKontoKonto, sag = AndenKontoSag }; recwBilag.tblwkladders.Add(recWkladder); this.tblwbilagBindingSource.Add(recwBilag); return(true); } if ((AntalLinier == 2) && (bBankKonto) && (bAndenKonto) && (!bAfstem)) { foreach (tblwkladder k in qry_cpy_kladdes) { if (IsFound_BankKontoudtog) { if (k.konto == 58300) { 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; int? WrkAndenKontoKonto = AndenKontoKonto; if ((AndenKontoAfstemningskonto == "Bank") && (AndenKontoKonto == 58300)) { WrkAfstemningskonto = "PayPal"; WrkAndenKontoKonto = 58000; } else if (AndenKontoAfstemningskonto == "Bank") { WrkAfstemningskonto = "PayPal"; } else { WrkAfstemningskonto = AndenKontoAfstemningskonto; } tblwkladder recWkladder = new tblwkladder { tekst = AndenKontoTekst, afstemningskonto = WrkAfstemningskonto, belob = (IsFound_BankKontoudtog) ? (decimal)recBankkonto.belob : AndenKontoBelob, konto = WrkAndenKontoKonto, sag = AndenKontoSag, 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 = tblwfaklinDataGridView.NewRowIndex; tblwfak recWfak = (tblwfak)tblwfakBindingSource.Current; String TargetType = recWfak.sk; foreach (string line in lines) { if (line.Length > 0) { try { int i = 0; int iMax = 12; 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) //konto { 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) //konto { tblwfaklin recWfaklin; decimal? Omkostbelob; if (Program.karRegnskab.MomsPeriode() == 2) { recWfaklin = new tblwfaklin { varenr = value[1], tekst = value[2], konto = Microsoft.VisualBasic.Information.IsNumeric(value[3]) ? int.Parse(value[3]) : (int?)null, momskode = "", antal = Microsoft.VisualBasic.Information.IsNumeric(value[4]) ? decimal.Parse(value[4]) : (decimal?)null, enhed = value[5], pris = Microsoft.VisualBasic.Information.IsNumeric(value[6]) ? decimal.Parse(value[6]) : (decimal?)null, moms = 0, nettobelob = Microsoft.VisualBasic.Information.IsNumeric(value[7]) ? decimal.Parse(value[7]) : (decimal?)null, bruttobelob = Microsoft.VisualBasic.Information.IsNumeric(value[7]) ? decimal.Parse(value[7]) : (decimal?)null, }; Omkostbelob = Microsoft.VisualBasic.Information.IsNumeric(value[8]) ? decimal.Parse(value[8]) : (decimal?)null; if ((TargetType == "S") && (Omkostbelob != null)) { recWfaklin.konto = getVaresalgsKonto(recWfaklin.konto); decimal momspct = KarMoms.getMomspct(recWfaklin.momskode) / 100; recWfaklin.pris += decimal.Round((decimal)(Omkostbelob / recWfaklin.antal), 2); recWfaklin.nettobelob = decimal.Round((decimal)(recWfaklin.pris * recWfaklin.antal), 2); recWfaklin.moms = decimal.Round((decimal)(recWfaklin.nettobelob * momspct), 2); recWfaklin.bruttobelob = decimal.Round((decimal)(recWfaklin.nettobelob + recWfaklin.moms), 2); } } else { recWfaklin = new tblwfaklin { varenr = value[1], tekst = value[2], konto = Microsoft.VisualBasic.Information.IsNumeric(value[3]) ? int.Parse(value[3]) : (int?)null, momskode = value[4], antal = Microsoft.VisualBasic.Information.IsNumeric(value[5]) ? decimal.Parse(value[5]) : (decimal?)null, enhed = value[6], pris = Microsoft.VisualBasic.Information.IsNumeric(value[7]) ? decimal.Parse(value[7]) : (decimal?)null, moms = Microsoft.VisualBasic.Information.IsNumeric(value[8]) ? decimal.Parse(value[8]) : (decimal?)null, nettobelob = Microsoft.VisualBasic.Information.IsNumeric(value[9]) ? decimal.Parse(value[9]) : (decimal?)null, bruttobelob = Microsoft.VisualBasic.Information.IsNumeric(value[10]) ? decimal.Parse(value[10]) : (decimal?)null }; Omkostbelob = Microsoft.VisualBasic.Information.IsNumeric(value[11]) ? decimal.Parse(value[11]) : (decimal?)null; if ((TargetType == "S") && (Omkostbelob != null)) { recWfaklin.konto = getVaresalgsKonto(recWfaklin.konto); recWfaklin.momskode = "S25"; decimal momspct = KarMoms.getMomspct(recWfaklin.momskode) / 100; recWfaklin.pris += decimal.Round((decimal)(Omkostbelob / recWfaklin.antal), 2); recWfaklin.nettobelob = decimal.Round((decimal)(recWfaklin.pris * recWfaklin.antal), 2); recWfaklin.moms = decimal.Round((decimal)(recWfaklin.nettobelob * momspct), 2); recWfaklin.bruttobelob = decimal.Round((decimal)(recWfaklin.nettobelob + recWfaklin.moms), 2); } } tblwfaklinBindingSource.Insert(row, recWfaklin); } row++; } catch (FormatException) { //TODO: log exceptions using a nice standard logging library tblwfaklinDataGridView.CancelEdit(); } } else { break; } } }
public int KøbsOrder2Summa(IList <tblwfak> wFak) { var rec_regnskab = Program.qryAktivRegnskab(); if (rec_regnskab.Afsluttet == true) { return(0); } KarFakturastr_k m_karFakturastr_k = null; KarFakturavarer_k m_karFakturavarer_k = null; DateTime?Startdato = rec_regnskab.Start; DateTime?Slutdato = rec_regnskab.S**t; if (rec_regnskab.DatoLaas != null) { if (rec_regnskab.DatoLaas > Startdato) { Startdato = rec_regnskab.DatoLaas; } } var qry_ord = from sf in wFak where sf.sk == "K" select sf; int AntalOrdre = qry_ord.Count(); if (AntalOrdre > 0) { DateTime ToDay = DateTime.Today; int SidsteKFakID; int SidsteRec_no; try { SidsteKFakID = (from f in Program.karFakturaer_k select f.fakid).Max(); } catch (System.InvalidOperationException) { SidsteKFakID = 0; } try { SidsteRec_no = (from f in Program.karFakturaer_k select f.rec_no).Max(); } catch (System.InvalidOperationException) { SidsteRec_no = 0; } m_karFakturastr_k = new KarFakturastr_k(); m_karFakturavarer_k = new KarFakturavarer_k(true); foreach (var o in qry_ord) { var qry_ordlin = from sfl in o.tblwfaklins select sfl; if (qry_ordlin.Count() == 0) //der findes ingen ordrelinier { continue; } SidsteKFakID++; SidsteRec_no++; int orebelob = (int)((from s in qry_ordlin select s.bruttobelob).Sum() * 100); int momsbelob = (int)((from s in qry_ordlin select s.moms).Sum() * 100); if (o.dato == null) { o.dato = ToDay; } if (o.konto == null) { o.konto = 0; } if (o.kreditorbilagsnr == null) { o.kreditorbilagsnr = 0; } ordtype_k ord = new ordtype_k ( SidsteKFakID, //fakid (DateTime)o.dato, //dato ((DateTime)o.dato).AddDays(14), //forfaldsdato orebelob, //fakbeløb i øre (int)(o.konto), //kreditornr momsbelob, //momsbeløb i øre (int)(o.kreditorbilagsnr) //kreditorbilagsnr ); recFakturaer_k rec = new recFakturaer_k { rec_no = SidsteRec_no, rec_data = ord }; Program.karFakturaer_k.Add(rec); var m_rec = (from m in Program.karKartotek where m.Kontonr == o.konto select m).First(); string[] wAdresse = new string[1]; wAdresse[0] = m_rec.Adresse; clsNavnAdresse wFakNavnAdresse = new clsNavnAdresse { Navn = m_rec.Kontonavn, Adresse = wAdresse, Postnr = m_rec.Postnr, Bynavn = m_rec.Bynavn, }; recFakturastr_k rec_Fakturastr_k = new recFakturastr_k { Fakid = SidsteKFakID, FakNavnAdresse = wFakNavnAdresse, Cvrnr = m_rec.Cvrnr, }; m_karFakturastr_k.Add(rec_Fakturastr_k); foreach (var ol in qry_ordlin) { recFakturavarer_k rec_Fakturavarer_k = new recFakturavarer_k { Fakid = SidsteKFakID, Varenr = Microsoft.VisualBasic.Information.IsNumeric(ol.varenr) ? int.Parse(ol.varenr) : (int?)null, VareTekst = ol.tekst, Bogfkonto = ol.konto, Antal = ol.antal, Enhed = ol.enhed, Pris = ol.pris, Moms = ol.moms, Nettobelob = ol.nettobelob, Bruttobelob = ol.bruttobelob, Momspct = KarMoms.getMomspct(ol.momskode) }; m_karFakturavarer_k.Add(rec_Fakturavarer_k); } } try { recStatus rec_Status = (from s in Program.karStatus where s.key == "SidsteKFakID" select s).First(); rec_Status.value = SidsteKFakID.ToString(); } catch (System.InvalidOperationException) { recStatus rec_Status = new recStatus { key = "SidsteKFakID", value = SidsteKFakID.ToString() }; Program.karStatus.Add(rec_Status); } Program.karStatus.save(); Program.karFakturaer_k.save(); m_karFakturastr_k.save(); m_karFakturavarer_k.save(); Program.dbDataTransSumma.SubmitChanges(); } return(AntalOrdre); }