Exemplo n.º 1
0
        public int SalgsOrder2Summa(IList <tblwfak> wFak)
        {
            var rec_regnskab = Program.qryAktivRegnskab();

            if (rec_regnskab.Afsluttet == true)
            {
                return(0);
            }
            KarFakturastr_s   m_karFakturastr_s   = null;
            KarFakturavarer_s m_karFakturavarer_s = 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 //Program.dbDataTransSumma.Tblwfak
                          where sf.sk == "S"
                          select sf;

            int AntalOrdre = qry_ord.Count();

            if (AntalOrdre > 0)
            {
                DateTime ToDay = DateTime.Today;
                int      SidsteSFakID;
                int      SidsteRec_no;
                try
                {
                    SidsteSFakID = (from f in Program.karFakturaer_s select f.fakid).Max();
                }
                catch (System.InvalidOperationException)
                {
                    SidsteSFakID = 0;
                }
                try
                {
                    SidsteRec_no = (from f in Program.karFakturaer_s select f.rec_no).Max();
                }
                catch (System.InvalidOperationException)
                {
                    SidsteRec_no = 0;
                }
                m_karFakturastr_s   = new KarFakturastr_s();
                m_karFakturavarer_s = new KarFakturavarer_s(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;
                    }

                    SidsteSFakID++;
                    SidsteRec_no++;
                    //var qry_ordlin = from sfl in Program.dbDataTransSumma.Tblwfaklin where sfl.Fakpid == o.Pid select sfl;
                    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;
                    }

                    ordtype_s ord = new ordtype_s
                                    (
                        SidsteSFakID,                     //fakid
                        (DateTime)o.dato,                 //dato
                        ((DateTime)o.dato).AddDays(14),   //forfaldsdato
                        orebelob,                         //fakbeløb i øre
                        (int)(o.konto),                   //debitornr
                        momsbelob                         //momsbeløb i øre
                                    );
                    recFakturaer_s rec = new recFakturaer_s {
                        rec_no = SidsteRec_no, rec_data = ord
                    };
                    Program.karFakturaer_s.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_s rec_Fakturastr_s = new recFakturastr_s
                    {
                        Fakid          = SidsteSFakID.ToString(),
                        FakNavnAdresse = wFakNavnAdresse,
                        Email          = m_rec.Email,
                        Cvrnr          = m_rec.Cvrnr,
                    };
                    m_karFakturastr_s.Add(rec_Fakturastr_s);

                    foreach (var ol in qry_ordlin)
                    {
                        recFakturavarer_s rec_Fakturavarer_s = new recFakturavarer_s
                        {
                            Fakid       = SidsteSFakID,
                            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_s.Add(rec_Fakturavarer_s);
                    }
                }

                try
                {
                    recStatus rec_Status = (from s in Program.karStatus where s.key == "SidsteSFakID" select s).First();
                    rec_Status.value = SidsteSFakID.ToString();
                }
                catch (System.InvalidOperationException)
                {
                    recStatus rec_Status = new recStatus
                    {
                        key   = "SidsteSFakID",
                        value = SidsteSFakID.ToString()
                    };
                    Program.karStatus.Add(rec_Status);
                }
                Program.karStatus.save();
                Program.karFakturaer_s.save();
                m_karFakturastr_s.save();
                m_karFakturavarer_s.save();

                Program.dbDataTransSumma.SubmitChanges();
            }
            return(AntalOrdre);
        }
Exemplo n.º 2
0
        public int Order2Summa()
        {
            var rec_regnskab = Program.qryAktivRegnskab();

            if (rec_regnskab.Afsluttet == true)
            {
                return(0);
            }

            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 f in Program.dbData3060.Tblfak
                          where f.SFakID == null && Startdato <= f.Betalingsdato && f.Betalingsdato <= Slutdato
                          join b in Program.dbData3060.Tblbetlin on f.Faknr equals b.Faknr
                          where b.Pbstranskode == "0236" || b.Pbstranskode == "0297"
                          select new { f.Id, Pbsfaknr = f.Faknr, f.Nr, f.Advisbelob, f.Betalingsdato, f.Vnr, f.Bogfkonto, b.Indbetalingsdato };

            int AntalOrdre = qry_ord.Count();

            if (AntalOrdre > 0)
            {
                DateTime nu    = DateTime.Now;
                DateTime ToDay = new DateTime(nu.Year, nu.Month, nu.Day);;
                int      SidsteSFakID;
                int      SidsteRec_no;
                try
                {
                    SidsteSFakID = (from f in Program.karFakturaer_s select f.fakid).Max();
                }
                catch (System.InvalidOperationException)
                {
                    SidsteSFakID = 0;
                }
                try
                {
                    SidsteRec_no = (from f in Program.karFakturaer_s select f.rec_no).Max();
                }
                catch (System.InvalidOperationException)
                {
                    SidsteRec_no = 0;
                }
                Program.karFakturastr_s   = null;
                Program.karFakturavarer_s = null;

                foreach (var o in qry_ord)
                {
                    SidsteSFakID++;
                    SidsteRec_no++;
                    int orebelob = (int)o.Advisbelob * 100;

                    ordtype_s ord = new ordtype_s
                                    (
                        SidsteSFakID,          //fakid
                        ToDay,                 //(o.Betalingsdato > o.Indbetalingsdato) ? (DateTime)o.Betalingsdato : (DateTime)o.Indbetalingsdato, //dato
                        ToDay,                 //(DateTime)o.Betalingsdato, //forfaldsdato
                        orebelob,              //fakbeløb i øre
                        (int)Nr2Debktonr(o.Nr) //debitornr
                                    );
                    recFakturaer_s rec = new recFakturaer_s {
                        rec_no = SidsteRec_no, rec_data = ord
                    };
                    Program.karFakturaer_s.Add(rec);

                    var             m_rec            = (from m in Program.karMedlemmer where m.Nr == o.Nr select m).First();
                    recFakturastr_s rec_Fakturastr_s = new recFakturastr_s
                    {
                        Fakid   = SidsteSFakID.ToString(),
                        Navn    = m_rec.Navn,
                        Adresse = m_rec.Adresse,
                        Postnr  = m_rec.Postnr,
                        Bynavn  = m_rec.Bynavn,
                        Faknr   = (int)o.Pbsfaknr,
                        Email   = m_rec.Email
                    };
                    Program.karFakturastr_s.Add(rec_Fakturastr_s);

                    recFakturavarer_s rec_Fakturavarer_s = new recFakturavarer_s
                    {
                        Fakid        = SidsteSFakID.ToString(),
                        Varenr       = (int)o.Vnr,
                        VareTekst    = "Puls 3060 kontingent",
                        Bogfkonto    = (int)o.Bogfkonto,
                        Antal        = 1,
                        Fakturabelob = (double)o.Advisbelob
                    };
                    Program.karFakturavarer_s.Add(rec_Fakturavarer_s);

                    try
                    {
                        Tblfak rec_fak = (from f in Program.dbData3060.Tblfak
                                          where f.Id == o.Id
                                          select f).First();
                        rec_fak.SFakID = SidsteSFakID;
                    }
                    catch (System.InvalidOperationException)
                    {
                        throw;
                    }
                }
                Program.karFakturaer_s.save();
                Program.karFakturastr_s.save();
                Program.karFakturavarer_s.save();

                try
                {
                    recStatus rec_Status = (from s in Program.karStatus where s.key == "SidsteSFakID" select s).First();
                    rec_Status.value = SidsteSFakID.ToString();
                }
                catch (System.InvalidOperationException)
                {
                    recStatus rec_Status = new recStatus
                    {
                        key   = "SidsteSFakID",
                        value = SidsteSFakID.ToString()
                    };
                    Program.karStatus.Add(rec_Status);
                }
                Program.karStatus.save();
                Program.dbData3060.SubmitChanges();
            }
            return(AntalOrdre);
        }
Exemplo n.º 3
0
        public int Order2Summa()
        {
            var rec_regnskab = Program.qryAktivRegnskab();

            if (rec_regnskab.Afsluttet == true)
            {
                return(0);
            }

            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;
                }
            }
            int       AntalOrdre = 0;
            clsRest   objRest    = new clsRest();
            string    strxmldata = objRest.HttpGet2(clsRest.urlBaseType.data, "order2summa");
            XDocument xmldata    = XDocument.Parse(strxmldata);
            string    Status     = xmldata.Descendants("Status").First().Value;

            if (Status != "True")
            {
                return(AntalOrdre);
            }

            var qry_ord = from forslag in xmldata.Descendants("Fak") select forslag;

            AntalOrdre = qry_ord.Count();

            if (AntalOrdre > 0)
            {
                DateTime nu    = DateTime.Now;
                DateTime ToDay = new DateTime(nu.Year, nu.Month, nu.Day);;
                int      SidsteSFakID;
                int      SidsteRec_no;
                try
                {
                    SidsteSFakID = (from f in Program.karFakturaer_s select f.fakid).Max();
                }
                catch (System.InvalidOperationException)
                {
                    SidsteSFakID = 0;
                }
                try
                {
                    SidsteRec_no = (from f in Program.karFakturaer_s select f.rec_no).Max();
                }
                catch (System.InvalidOperationException)
                {
                    SidsteRec_no = 0;
                }
                Program.karFakturastr_s   = null;
                Program.karFakturavarer_s = null;

                XElement SFakIDupdatexml = new XElement("SFakIDupdate");

                foreach (var o in qry_ord)
                {
                    string Key    = o.Descendants("Key").First().Value;
                    string strval = o.Descendants("Id").First().Value;
                    int    Id     = int.Parse(strval);
                    strval = o.Descendants("Nr").First().Value;
                    int Nr = int.Parse(strval);
                    strval = o.Descendants("Advisbelob").First().Value;
                    double Advisbelob = double.Parse(strval.Replace('.', ','));
                    strval = o.Descendants("Pbsfaknr").First().Value;
                    int Pbsfaknr = int.Parse(strval);
                    strval = o.Descendants("Vnr").First().Value;
                    int Vnr = int.Parse(strval);
                    strval = o.Descendants("Bogfkonto").First().Value;
                    int Bogfkonto = int.Parse(strval);

                    SidsteSFakID++;
                    SidsteRec_no++;
                    int orebelob = (int)Advisbelob * 100;

                    ordtype_s ord = new ordtype_s
                                    (
                        SidsteSFakID,        //fakid
                        ToDay,               //(o.Betalingsdato > o.Indbetalingsdato) ? (DateTime)o.Betalingsdato : (DateTime)o.Indbetalingsdato, //dato
                        ToDay,               //(DateTime)o.Betalingsdato, //forfaldsdato
                        orebelob,            //fakbeløb i øre
                        (int)Nr2Debktonr(Nr) //debitornr
                                    );
                    recFakturaer_s rec = new recFakturaer_s {
                        rec_no = SidsteRec_no, rec_data = ord
                    };
                    Program.karFakturaer_s.Add(rec);

                    var             m_rec            = (from m in Program.karMedlemmer where m.Nr == Nr select m).First();
                    recFakturastr_s rec_Fakturastr_s = new recFakturastr_s
                    {
                        Fakid   = SidsteSFakID.ToString(),
                        Navn    = m_rec.Navn,
                        Adresse = m_rec.Adresse,
                        Postnr  = m_rec.Postnr,
                        Bynavn  = m_rec.Bynavn,
                        Faknr   = (int)Pbsfaknr,
                        Email   = m_rec.Email
                    };
                    Program.karFakturastr_s.Add(rec_Fakturastr_s);

                    recFakturavarer_s rec_Fakturavarer_s = new recFakturavarer_s
                    {
                        Fakid        = SidsteSFakID.ToString(),
                        Varenr       = (int)Vnr,
                        VareTekst    = "Puls 3060 kontingent",
                        Bogfkonto    = (int)Bogfkonto,
                        Antal        = 1,
                        Fakturabelob = (double)Advisbelob
                    };
                    Program.karFakturavarer_s.Add(rec_Fakturavarer_s);

                    try
                    {
                        XElement fakxml = new XElement("Fak");
                        fakxml.Add(new XElement("Key", Key));
                        fakxml.Add(new XElement("Id", Id));
                        fakxml.Add(new XElement("SFakID", SidsteSFakID));
                        SFakIDupdatexml.Add(new XElement(fakxml));
                    }
                    catch (System.InvalidOperationException)
                    {
                        throw;
                    }
                }
                string strSFakIDupdatexml = @"<?xml version=""1.0"" encoding=""utf-8"" ?> " + SFakIDupdatexml.ToString();
                string result             = objRest.HttpPost2(clsRest.urlBaseType.data, "order2summa", strSFakIDupdatexml);

                Program.karFakturaer_s.save();
                Program.karFakturastr_s.save();
                Program.karFakturavarer_s.save();

                try
                {
                    recStatus rec_Status = (from s in Program.karStatus where s.key == "SidsteSFakID" select s).First();
                    rec_Status.value = SidsteSFakID.ToString();
                }
                catch (System.InvalidOperationException)
                {
                    recStatus rec_Status = new recStatus
                    {
                        key   = "SidsteSFakID",
                        value = SidsteSFakID.ToString()
                    };
                    Program.karStatus.Add(rec_Status);
                }
                Program.karStatus.save();
            }
            return(AntalOrdre);
        }