Ejemplo n.º 1
0
        public MemBogfoeringsKlader konter_paypal_betalinger_fra_rsmembership(puls3060_dkEntities p_dbPuls3060_dk, DateTime Regnskabsaar_Startdato, DateTime Regnskabsaar_Slutdato)
        {
            clsPayPal            objPayPal = new clsPayPal();
            MemBogfoeringsKlader klader    = new MemBogfoeringsKlader();
            int BS1_SidsteNr     = 0;
            var qry_rsmembership = from s in p_dbPuls3060_dk.ecpwt_rsmembership_membership_subscribers
                                   where s.membership_id == 6
                                   join tl in p_dbPuls3060_dk.ecpwt_rsmembership_transactions on s.last_transaction_id equals tl.id
                                   where tl.gateway == "PayPal"
                                   join p in p_dbPuls3060_dk.tblpaypalpayments on tl.hash equals p.paypal_transactions_id into p1
                                   from p in p1.DefaultIfEmpty()
                                   where p.bogfoert == null || p.bogfoert == false
                                   join u in p_dbPuls3060_dk.ecpwt_users on s.user_id equals u.id
                                   select new
            {
                paypal_transaction_id = tl.hash,
                Navn = u.name,
                s.membership_id,
                s.membership_start,
                s.membership_end,
            };
            var arr_rsmembership = qry_rsmembership.ToArray();

            if (arr_rsmembership.Count() > 0)
            {
                foreach (var rsmembership in arr_rsmembership)
                {
                    if (rsmembership.paypal_transaction_id.Length == 0)
                    {
                        continue;
                    }

                    PaymentTransactionSearchResultType paypal_trans = objPayPal.getPayPalTransaction(rsmembership.paypal_transaction_id);

                    if (paypal_trans != null)
                    {
                        decimal   Belob    = decimal.Parse(paypal_trans.GrossAmount.Value.Replace(".", ","));
                        decimal[] arrBeløb = clsPbs602.fordeling(Belob, rsmembership.membership_start, rsmembership.membership_end, Regnskabsaar_Startdato, Regnskabsaar_Slutdato);
                        string    stdate   = string.Format(" {0}-{1}", rsmembership.membership_start.ToString("d.M.yyyy"), rsmembership.membership_end.ToString("d.M.yyyy"));

                        int wBilag = ++BS1_SidsteNr;
                        recBogfoeringsKlader recklade = new recBogfoeringsKlader
                        {
                            Dato             = paypal_trans.Timestamp,
                            Bilag            = wBilag,
                            Tekst            = ("Paypal: " + rsmembership.paypal_transaction_id).PadRight(40, ' ').Substring(0, 40),
                            Afstemningskonto = "PayPal",
                            Belob            = Belob,
                            Kontonr          = null,
                            Faknr            = null,
                            Sagnr            = null
                        };
                        klader.Add(recklade);

                        if (arrBeløb[0] > 0)
                        {
                            recklade = new recBogfoeringsKlader
                            {
                                Dato             = paypal_trans.Timestamp,
                                Bilag            = wBilag,
                                Tekst            = (rsmembership.Navn + stdate).PadRight(40, ' ').Substring(0, 40),
                                Afstemningskonto = "",
                                Belob            = arrBeløb[0],
                                Kontonr          = 1800,
                                Faknr            = null,
                                Sagnr            = null
                            };
                            klader.Add(recklade);
                        }

                        if (arrBeløb[1] > 0)
                        {
                            recklade = new recBogfoeringsKlader
                            {
                                Dato             = paypal_trans.Timestamp,
                                Bilag            = wBilag,
                                Tekst            = (rsmembership.Navn + stdate).PadRight(40, ' ').Substring(0, 40),
                                Afstemningskonto = "",
                                Belob            = arrBeløb[1],
                                Kontonr          = 64200,
                                Faknr            = null,
                                Sagnr            = null
                            };
                            klader.Add(recklade);
                        }

                        recklade = new recBogfoeringsKlader
                        {
                            Dato             = paypal_trans.Timestamp,
                            Bilag            = wBilag,
                            Tekst            = ("PayPal Gebyr").PadRight(40, ' ').Substring(0, 40),
                            Afstemningskonto = "PayPal",
                            Belob            = decimal.Parse(paypal_trans.FeeAmount.Value.Replace(".", ",")),
                            Kontonr          = 9950,
                            Faknr            = null,
                            Sagnr            = null
                        };
                        klader.Add(recklade);

                        tblpaypalpayment rec_paypalpayments = (from p in p_dbPuls3060_dk.tblpaypalpayments where p.paypal_transactions_id == rsmembership.paypal_transaction_id select p).FirstOrDefault();
                        if (rec_paypalpayments == null)
                        {
                            rec_paypalpayments = new tblpaypalpayment
                            {
                                paypal_transactions_id = rsmembership.paypal_transaction_id,
                                bogfoert = true
                            };
                            p_dbPuls3060_dk.tblpaypalpayments.Add(rec_paypalpayments);
                        }
                        else
                        {
                            rec_paypalpayments.bogfoert = true;
                        }
                        p_dbPuls3060_dk.SaveChanges();
                    }
                }
            }



            return(klader);
        }
Ejemplo n.º 2
0
        public int BogforIndBetalinger()
        {
            if (m_CurrentCompanyFinanceYear.Closed == true)
            {
                return(0);
            }

            DateTime?Startdato = m_CurrentCompanyFinanceYear._FromDate;
            DateTime?Slutdato  = m_CurrentCompanyFinanceYear._ToDate;


            int saveBetid = 0;
            var bogf      = (from bl in m_dbData3060.Tblbetlin
                             where (bl.Pbstranskode == "0236" || bl.Pbstranskode == "0297") && (Startdato <= bl.Indbetalingsdato && bl.Indbetalingsdato <= Slutdato)
                             join b in m_dbData3060.Tblbet on bl.Betid equals b.Id
                             where b.Summabogfort == null || b.Summabogfort == false //<<-------------------------------
                             join p in m_dbData3060.Tblfrapbs on b.Frapbsid equals p.Id
                             orderby p.Id, b.Id, bl.Id
                             select new betrec
            {
                Frapbsid = p.Id,
                Leverancespecifikation = p.Leverancespecifikation,
                Betid = b.Id,
                GruppeIndbetalingsbelob = b.Indbetalingsbelob,
                Betlinid = bl.Id,
                Betalingsdato = bl.Betalingsdato,
                Indbetalingsdato = bl.Indbetalingsdato,
                Indbetalingsbelob = bl.Indbetalingsbelob,
                Faknr = bl.Faknr,
                Debitorkonto = bl.Debitorkonto,
                Nr = bl.Nr
            }).ToList();

            int AntalBetalinger = bogf.Count();

            foreach (var b in bogf)
            {
                var critMedlem = new List <PropValuePair>();
                var pairMedlem = PropValuePair.GenereteWhereElements("KeyStr", typeof(String), b.Nr.ToString());
                critMedlem.Add(pairMedlem);
                var taskMedlem = m_api.Query <Medlem>(critMedlem);
                taskMedlem.Wait();
                var resultMedlem = taskMedlem.Result;
                var antalMedlem  = resultMedlem.Count();
                if (antalMedlem == 1)
                {
                    var recMedlem = resultMedlem.First();
                    b.DebitorNavn = recMedlem.KeyName;
                }
                else
                {
                    b.DebitorNavn = "Ukendt medlem";
                }
            }

            if (bogf.Count() > 0)
            {
                DateTime nu    = DateTime.Now;
                DateTime ToDay = new DateTime(nu.Year, nu.Month, nu.Day);;

                int BS1_SidsteNr = 0;
                MemBogfoeringsKlader karKladde = new MemBogfoeringsKlader();

                int count = 0;
                foreach (var b in bogf)
                {
                    if (saveBetid != b.Betid) // ny gruppe
                    {
                        saveBetid = b.Betid;
                        recBogfoeringsKlader gkl = new recBogfoeringsKlader
                        {
                            Dato             = ToDay,
                            Bilag            = ++BS1_SidsteNr,
                            Tekst            = "Indbetalingskort K 81131945-" + ((DateTime)b.Indbetalingsdato).Day + "." + ((DateTime)b.Indbetalingsdato).Month,
                            Afstemningskonto = "Bank",
                            Belob            = b.GruppeIndbetalingsbelob,
                            Kontonr          = null,
                            Faknr            = null,
                            Sagnr            = null
                        };
                        karKladde.Add(gkl);

                        var rec_bet = (from ub in m_dbData3060.Tblbet where ub.Id == b.Betid select ub).First();
                        rec_bet.Summabogfort = true;
                    }

                    char[] trim0 = { '0' };
                    IQueryable <msmrecs> msm;
                    if (b.Faknr != 0) //Indbetalingskort sendt af Nets
                    {
                        msm = from f in m_dbData3060.Tblfak
                              where f.Faknr == b.Faknr
                              select new msmrecs
                        {
                            faknr     = f.Faknr,
                            Nr        = f.Nr,
                            name      = b.DebitorNavn,
                            bogfkonto = f.Bogfkonto,
                            fradato   = f.Fradato,
                            tildato   = f.Tildato
                        };
                    }
                    else //Indbetalingskort ikke sendt af Nets
                    {
                        msm = from f in m_dbData3060.Tblfak
                              where f.Indbetalerident.TrimStart(trim0) == b.Debitorkonto.TrimStart(trim0)
                              select new msmrecs
                        {
                            faknr     = f.Faknr,
                            Nr        = f.Nr,
                            name      = b.DebitorNavn,
                            bogfkonto = f.Bogfkonto,
                            fradato   = f.Fradato,
                            tildato   = f.Tildato
                        };
                    }

                    if (msm.Count() == 1) //Kontingent betaling for RSMembership
                    {
                        var                  f        = msm.First();
                        decimal[]            arrBelob = clsPbs602.fordeling((decimal)b.Indbetalingsbelob, (DateTime)f.fradato, (DateTime)f.tildato, (DateTime)Startdato, (DateTime)Slutdato);
                        recBogfoeringsKlader kl;
                        string               wTekst = ("F" + f.faknr + " " + f.Nr + " " + f.name).PadRight(40, ' ').Substring(0, 40);
                        try
                        {
                            if (((DateTime)b.Indbetalingsdato - (DateTime)b.Betalingsdato).Days > 300) // faktura mere end 300 dage gammel
                            {
                                wTekst = ("???" + wTekst).PadRight(40, ' ').Substring(0, 40);
                            }
                        }
                        catch { }

                        if (arrBelob[0] > 0)
                        {
                            kl = new recBogfoeringsKlader
                            {
                                Dato             = ToDay,
                                Bilag            = BS1_SidsteNr,
                                Tekst            = wTekst,
                                Afstemningskonto = null,
                                Belob            = arrBelob[0],
                                Kontonr          = 1003, //f.bogfkonto,
                                Faknr            = null,
                                Sagnr            = null
                            };
                            karKladde.Add(kl);
                        }

                        if (arrBelob[1] > 0)
                        {
                            kl = new recBogfoeringsKlader
                            {
                                Dato             = ToDay,
                                Bilag            = BS1_SidsteNr,
                                Tekst            = wTekst,
                                Afstemningskonto = null,
                                Belob            = arrBelob[1],
                                Kontonr          = 6831, //64200,
                                Faknr            = null,
                                Sagnr            = null
                            };
                            karKladde.Add(kl);
                        }
                    }
                    else //Anden betaling
                    {
                        recBogfoeringsKlader kl = new recBogfoeringsKlader
                        {
                            Dato             = ToDay,
                            Bilag            = BS1_SidsteNr,
                            Tekst            = ("Ukendt betaling").PadRight(40, ' ').Substring(0, 40),
                            Afstemningskonto = null,
                            Belob            = b.Indbetalingsbelob,
                            Kontonr          = 6833, //65050,
                            Faknr            = null,
                            Sagnr            = null
                        };
                        karKladde.Add(kl);
                    }
                }
                InsertGLDailyJournalLines(karKladde);
                m_dbData3060.SaveChanges();
            }
            return(AntalBetalinger);
        }