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