示例#1
0
        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();
        }
示例#2
0
        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;
            }
        }
示例#3
0
        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();
        }
示例#4
0
        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);
        }
示例#5
0
        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();
            }
        }