private void Beregn() { decimal?fakturabelob = 0; try { var qry = from l in (this.tblwfakBindingSource.Current as Tblwfak).Tblwfaklin select l; foreach (var l in qry) { decimal momspct; if (KarMoms.isUdlandsmoms(l.Momskode)) { momspct = 0; } else { momspct = KarMoms.getMomspct(l.Momskode) / 100; } l.Nettobelob = l.Pris * l.Antal; l.Moms = decimal.Round((decimal)(l.Nettobelob * momspct), 2); l.Bruttobelob = l.Nettobelob + l.Moms; fakturabelob += l.Bruttobelob; } } catch { } toolStripLabelFakturabelob.Text = fakturabelob.ToString(); }
private void fratrækMomsToolStripMenuItem_Click(object sender, EventArgs e) { DataGridViewSelectedCellCollection cells = tblwkladderDataGridView.SelectedCells; if (cells.Count == 1) { try { DataGridViewTextBoxCell cell = cells[0] as DataGridViewTextBoxCell; Tblwkladder recWkladder = cell.OwningRow.DataBoundItem as Tblwkladder; decimal momspct = 1 + KarMoms.getMomspct(recWkladder.Momskode) / 100; recWkladder.Belob /= momspct; } catch { } } }
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; } } }
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")); 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 == 1) && (!bBankKonto) && (bAndenKonto) && (bAfstem)) { Tblwkladder recWkladder = new Tblwkladder { Tekst = AndenKontoTekst, Afstemningskonto = AndenKontoAfstemningskonto, Belob = (IsFound_BankKontoudtog) ? (decimal)recBankkonto.Belob : AndenKontoBelob, Konto = AndenKontoKonto, Momskode = AndenKontoMomskode }; recwBilag.Tblwkladder.Add(recWkladder); this.tblwbilagBindingSource.Add(recwBilag); return(true); } } return(false); }
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.Tblwfaklin 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); }
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); }