public int BogforPaypalBetalinger() { 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; } } puls3060_dkEntities jdb = new puls3060_dkEntities(); clsPbs602 objPbs602 = new clsPbs602(); MemBogfoeringsKlader bogf = objPbs602.konter_paypal_betalinger_fra_rsmembership(jdb, (DateTime)Startdato, (DateTime)Slutdato); int AntalBetalinger = 0; if (bogf.Count() > 0) { DateTime nu = DateTime.Now; DateTime ToDay = new DateTime(nu.Year, nu.Month, nu.Day);; int BS1_SidsteNr = 0; try { recStatus rec_Status = (from s in Program.karStatus where s.key == "BS1_SidsteNr" select s).First(); BS1_SidsteNr = int.Parse(rec_Status.value); } catch (System.InvalidOperationException) { } Program.karKladde = null; foreach (var b in bogf) { recKladde kl = new recKladde { Dato = b.Dato, Bilag = b.Bilag + BS1_SidsteNr, Tekst = b.Tekst, Afstemningskonto = b.Afstemningskonto, Belob = b.Belob, Kontonr = b.Kontonr, Faknr = b.Faknr, Sagnr = b.Sagnr }; Program.karKladde.Add(kl); AntalBetalinger = (int)b.Bilag; } Program.karStatus.save(); Program.karKladde.save(); Program.dbData3060.SubmitChanges(); } return(AntalBetalinger); }
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); }
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 void InsertGLDailyJournalLines(MemBogfoeringsKlader karKladde) { var crit = new List <PropValuePair>(); var pair = PropValuePair.GenereteWhereElements("KeyStr", typeof(String), "Dag"); crit.Add(pair); var task1 = m_api.Query <GLDailyJournalClient>(crit); task1.Wait(); var col = task1.Result; var rec_Master = col.FirstOrDefault(); foreach (var kk in karKladde) { GLDailyJournalLineClient jl = new GLDailyJournalLineClient() { Date = (DateTime)kk.Dato, Text = kk.Tekst, }; if ((kk.Afstemningskonto == "Bank") && (kk.Kontonr == null)) { jl.Account = "5840"; if (kk.Belob > 0) { jl.Debit = (double)kk.Belob; } else { jl.Credit = -(double)kk.Belob; } } if ((kk.Afstemningskonto == "PayPal") && (kk.Kontonr == null)) { jl.Account = "5830"; if (kk.Belob > 0) { jl.Debit = (double)kk.Belob; } else { jl.Credit = -(double)kk.Belob; } } if ((kk.Afstemningskonto == "PayPal") && //NEW (kk.Kontonr != null)) { jl.Account = "5830"; jl.OffsetAccount = kk.Kontonr.ToString(); if (kk.Belob > 0) { jl.Debit = (double)kk.Belob; } else { jl.Credit = -(double)kk.Belob; } } if ((String.IsNullOrEmpty(kk.Afstemningskonto)) && (kk.Kontonr != null)) { jl.Account = kk.Kontonr.ToString(); if (kk.Belob > 0) { jl.Credit = (double)kk.Belob; } else { jl.Debit = -(double)kk.Belob; } } jl.SetMaster(rec_Master); var task2 = m_api.Insert(jl); task2.Wait(); var err = task2.Result; } }