root/trunk/eCard/eCardMVC/adMoto.Payments.Web/Models/PaymentsUtils.cs @ 990

Wersja 990, 6.5 KB (wprowadzona przez marek, 16 years temu)

re #215

RevLine 
[866]1using System;
2using System.Web;
3using System.Threading;
4using System.Globalization;
5using System.Configuration;
[871]6using System.Security.Principal;
[970]7using adMoto.Payments.Core;
8using adMoto.Payments.Core.Data;
9using adMoto.Payments.Core.Interfaces;
[866]10
11
[971]12namespace adMoto.Payments.Web.Models
[866]13{
[971]14    public class PaymentsUtils
[866]15    {
[954]16        public const string EUR = "978";
17        public const string GBP = "826";
18        public const string USD = "789";
19        public const string PLN = "985";
[951]20        public const string CARDS = "CARDS";            //obsługa tylko kart płatniczych
21        public const string KOD_POLSKA = "616";         //kod kraju Akceptanta - Polska
22        public const string KODOWANIE = "ISO-8859-2";
[971]23        private readonly IRepository<PlatnosciEcard> _repPayment;
[952]24        private readonly ITranslateManager _translateManager;
[866]25
[971]26        public PaymentsUtils()
[952]27        {
28            _repPayment = new Repository<PlatnosciEcard>(new DataContext());
29            _translateManager = new Translation();     
30        }
31
[971]32        public PaymentsUtils(IRepository<PlatnosciEcard> repPayment)
[952]33        {
34            _repPayment = repPayment;
35            _translateManager = new Translation();   
36        }
[971]37        public PaymentsUtils(IRepository<PlatnosciEcard> repPayment, ITranslateManager translate)
[952]38        {
39            _repPayment = repPayment;
40            _translateManager = translate;
41        }
[984]42        public string BruttoToString(decimal? kwota, decimal? waluta_brutto, string miano)
[866]43        {
[950]44            var brutto = String.Format("{0:0.00}", kwota.ToString().Replace(",", ".")) + " PLN ";
[966]45
46            if (!String.IsNullOrEmpty(miano))
[984]47                if (waluta_brutto > 0 && miano.ToUpper() != "PLN")
48                    brutto += "(" + (waluta_brutto.ToString()).Replace(",", ".") + " " + miano.ToUpper() + ")";
[950]49           
[866]50            return brutto;
51        }
[950]52
[984]53        public bool UserIdentity(Invoice invoice, string userName)
[866]54        {
[984]55            return invoice != null && invoice.nip == userName;
[866]56        }
[950]57
[984]58        public Waluta SetAmount(Invoice invoice)
[950]59        {
[984]60            var waluta = new Waluta {Currency = GetCurrency(invoice.waluta_miano)};
[957]61
[984]62            waluta.Amount = waluta.Currency == PLN ? Convert.ToInt32(invoice.Brutto * 100) : Convert.ToInt32(invoice.waluta_brutto * 100);
[954]63           
[866]64            return waluta;
65        }
66
[954]67        public string GetCurrency(string currency)
68        {
69            if (string.IsNullOrEmpty(currency))
70                return PLN;
71
72            switch (currency.ToUpper())
73            {
74                case "EUR":
75                    return EUR;
76                case "GBP":
77                    return GBP;
78                case "USD":
79                    return USD;
80                default:
81                    return PLN;
82            }
83        }
84
[990]85        public void SetLanguage(string lang)
[950]86        {
[990]87            if (lang == Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName.ToLower()) return;
88
89            string culture;
[950]90            switch (lang)
[866]91            {
[950]92                case "en":
[990]93                    culture = "en-GB";
[950]94                    break;
[990]95                case "de":
96                    culture = "de-DE";
97                    break;
98                default:
99                    culture = "pl-PL";
100                    break;
[866]101            }
[990]102
103            Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfoByIetfLanguageTag(culture);
104            Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfoByIetfLanguageTag(culture);
[866]105        }
[950]106
107        public string SetTitle()
[866]108        {
[950]109            var str = "";
110            var css = ConfigurationManager.AppSettings["Css"];
111
[970]112            switch (css)
113            {
114                case "truck":
115                    str = HttpContext.GetGlobalResourceObject("tlumaczenia", "adresTruck") + " - ";
116                    break;
117                case "admoto":
118                    str = HttpContext.GetGlobalResourceObject("tlumaczenia", "adresAdmoto") + " - ";
119                    break;
120            }
[950]121
[866]122            return str;
123        }
[950]124
125        public void SetUserLogger(string nip, string faktura)
126        {
127
128            var user = nip + "-" + faktura;
129            Thread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity(user, ""), null);
[871]130        }
[950]131
[934]132        public ErrorViewData InitErrorViewData(string errortxt, int idFaktury)
[880]133        {
[950]134            var er = new ErrorViewData { Error = errortxt, InvoiceId = idFaktury };
[880]135            return er;
136        }
[984]137        public PlatnosciEcard CreateAndAddNewPyment(Invoice invoice, Waluta waluta, Payer payer, string sessionId)
[951]138        {
[984]139            var payment = new PlatnosciEcard();
140            payment.IDFaktury = invoice.ID_faktury;
141            payment.ORDERDESCRIPTION = invoice.Faktura_Numer;
142            payment.nip = invoice.nip;
143            payment.nrZlecenia = "";
144            payment.AMOUNT = waluta.Amount;
145            payment.CURRENCY = waluta.Currency;
146            payment.SESSIONID = sessionId;
147            payment.NAME = payer.FirstName;
148            payment.SURNAME = payer.LastName;
149            payment.AUTODEPOSIT = true;
150            payment.LANGUAGE = GetLanguage(); //ustawiamy jezyk, w ktorym ma byc wyświetlany formularz na stronie eCard
151            payment.CHARSET = KODOWANIE;
152            payment.COUNTRY = KOD_POLSKA;
153            payment.JS = true;
154            payment.PAYMENTTYPE = CARDS;
155            payment.Data = DateTime.Now;
156            payment.Status = null;
157            payment.Status_data = null;
[950]158
[984]159            _repPayment.Insert(payment);
160            return payment;
[951]161        }
[970]162
[984]163        public ErrorViewData IsError(Invoice invoice, String userName)
[952]164        {
165            var errortxt = "";
166
[984]167            if (invoice == null)
[952]168                errortxt = _translateManager.Translate("tlumaczenia", "brakdanych");
[984]169            else if (!UserIdentity(invoice, userName))
[952]170                errortxt = _translateManager.Translate("tlumaczenia", "weryfikacja");
171
172            return InitErrorViewData(errortxt, 0);
173        }
[970]174
[958]175        public string GetLanguage()
176        {
[970]177            var language = Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName.ToUpper();
[958]178           
179            if (language != "PL" && language != "EN" && language != "DE")
180                return "PL";  //domyślny jezyk, w ktorym ma byc wyświetlony formularz na stronie eCard
[970]181           
182            return language;
[958]183        }
[866]184    }
[950]185}
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.