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; 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); }
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); }