Exemple #1
0
        public static ordtype_k FromBinaryReaderBlock(BinaryReader br)
        {
            byte[]    buff   = br.ReadBytes(Marshal.SizeOf(typeof(ordtype_k)));                                   //Read byte array
            GCHandle  handle = GCHandle.Alloc(buff, GCHandleType.Pinned);                                         //Make sure that the Garbage Collector doesn't move our buffer
            ordtype_k s      = (ordtype_k)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(ordtype_k)); //Marshal the bytes

            handle.Free();                                                                                        //Give control of the buffer back to the GC
            return(s);
        }
Exemple #2
0
        public static void ToBinaryWriterBlock(BinaryWriter bw, ordtype_k s)
        {
            byte[]   buff   = new byte[Marshal.SizeOf(typeof(ordtype_k))];   //Create Buffer
            GCHandle handle = GCHandle.Alloc(buff, GCHandleType.Pinned);     //Hands off GC

            Marshal.StructureToPtr(s, handle.AddrOfPinnedObject(), false);   //Marshal the structure
            handle.Free();                                                   //Give control of the buffer back to the GC
            bw.Write(buff);                                                  //Write byte array
        }
Exemple #3
0
        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);
        }