root/trunk/eCard/eCardMVC/Platnosci/Models/FunkcjePlatnosci.cs @ 966

Wersja 966, 7.0 KB (wprowadzona przez alina, 16 years temu)

re #215 poprawka funkcji BruttoToString?()

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