root/trunk/TruckExpoCDN/ExpoToCDNExport.cs @ 1006

Wersja 834, 24.8 KB (wprowadzona przez marek, 17 years temu)

re #214

Line 
1using System;
2using System.Data.SqlClient;
3using System.Text.RegularExpressions;
4
5namespace ExportFaktur
6{
7    class ExpoToCDNExport
8    {
9        public CDNDataSet CDNDataset;
10        readonly SqlConnection CDN_conn = new SqlConnection(ConnString.CDNConnection);
11
12        // Public Methods (10) 
13        public void DodajElementyFaktury(EXPODataSet.FAKTURA_DETAILSDataTable table, CDNDataSet.TraNagRow naglowekFaktury)
14        {
15            int lp = 1;
16
17            CDNDataSet.TraNagRow naglowek = naglowekFaktury;
18
19            foreach (EXPODataSet.FAKTURA_DETAILSRow row in table.Rows)
20            {
21                CDNDataSet.TraElemRow pozycjaFaktury = (CDNDataSet.TraElemRow)CDNDataset.TraElem.NewRow();
22
23                pozycjaFaktury.TrE_TrNId = naglowek.TrN_TrNID;
24                //  pozycjaFaktury.tre_tran
25                if (istniejeKorekta())
26                {
27                    pozycjaFaktury.TrE_ZwrId = 0;
28                }
29                pozycjaFaktury.TrE_Lp = lp;
30                pozycjaFaktury.TrE_TypDokumentu = 302;
31                pozycjaFaktury.TrE_Aktywny = 1;
32                pozycjaFaktury.TrE_DataDok = naglowek.TrN_DataDok;
33                pozycjaFaktury.TrE_DataOpe = naglowek.TrN_DataOpe;
34                pozycjaFaktury.TrE_PodmiotTyp = 1;
35                pozycjaFaktury.TrE_PodID = naglowek.TrN_PodID;
36
37                if ((row.ROK > naglowekFaktury.TrN_DataDok.Year) ||
38                    ((row.ROK == naglowekFaktury.TrN_DataDok.Year) && (row.MIESIAC > naglowekFaktury.TrN_DataDok.Month)))
39                {
40                    pozycjaFaktury.TrE_KatID = podajIDKategorii(row.ROK, row.MIESIAC);
41                }
42                else
43                {
44                    pozycjaFaktury.TrE_KatID = naglowek.TrN_KatID;
45                }
46
47                pozycjaFaktury.TrE_TwrId = 1;
48                pozycjaFaktury.TrE_TwrNazwa = row.NAZWA_USLUGI + "   " + row.MIESIAC + "/" + row.ROK;
49
50
51                pozycjaFaktury.TrE_TwrOpis = "";
52                pozycjaFaktury.TrE_TwrSWW = "";
53                pozycjaFaktury.TrE_Stawka = (decimal)row.S_VAT * 100;
54                //svat'                @P14 numeric(5,2)     22.00                                 
55                pozycjaFaktury.TrE_Flaga = 2;
56                pozycjaFaktury.TrE_Zrodlowa = 0.00M;
57                pozycjaFaktury.TrE_TwCNumer = 2;
58                pozycjaFaktury.TrE_TypNB = 1;
59
60                pozycjaFaktury.TrE_CenaT = row.NETTO;
61
62                pozycjaFaktury.TrE_Cena0 = row.NETTO;
63                pozycjaFaktury.TrE_Rabat = (decimal)row.UPUST_PR * 100;
64                pozycjaFaktury.TrE_CenaW = row.NETTO;
65
66
67                pozycjaFaktury.TrE_Ilosc = 1M;
68
69                pozycjaFaktury.TrE_Jm = "szt.";
70                pozycjaFaktury.TrE_JmCalkowite = 0;
71                pozycjaFaktury.TrE_JMPrzelicznikL = 1.00M;
72                pozycjaFaktury.TrE_JMPrzelicznikM = 1;
73                pozycjaFaktury.TrE_IloscJM = pozycjaFaktury.TrE_Ilosc;
74                pozycjaFaktury.TrE_WartoscNetto = row.NETTO;
75                pozycjaFaktury.TrE_WartoscBrutto = row.BRUTTO;
76                pozycjaFaktury.TrE_TwrEAN = "";
77                pozycjaFaktury.TrE_TwrNumerKat = "";
78                pozycjaFaktury.TrE_TwrKod = "REKLAMA PRASOWA";
79                pozycjaFaktury.TrE_JmZ = "";
80                pozycjaFaktury.TrE_LpPow = lp;
81                pozycjaFaktury.TrE_Cena0WD = row.CENA_JEDN;
82                pozycjaFaktury.TrE_CenaWWD = row.NETTO;
83                pozycjaFaktury.TrE_WartoscNettoWal = row.NETTO;
84                pozycjaFaktury.TrE_WartoscBruttoWal = row.BRUTTO;
85                pozycjaFaktury.TrE_Prog = 0.00M;
86                pozycjaFaktury.TrE_UpustTyp = 0;
87                pozycjaFaktury.TrE_Upust = 0.00M;
88                pozycjaFaktury.TrE_UpustKnt = 0.00M;
89                pozycjaFaktury.TrE_UpustKntTyp = 0;
90                pozycjaFaktury.TrE_KosztUslugi = 0.00M;
91                pozycjaFaktury.TrE_RabatPromocyjny = 0.0000M;
92                pozycjaFaktury.TrE_RabatKorekta = 0.0000M;
93                pozycjaFaktury.TrE_Kaucja = 0;
94                pozycjaFaktury.TrE_IloscKW = 0.0000M;
95                pozycjaFaktury.TrE_IloscJMKW = 0.0000M;
96                pozycjaFaktury.TrE_MagId = 1;
97
98                pozycjaFaktury.TrE_Atr1_Kod = "";
99                pozycjaFaktury.TrE_Atr1_Wartosc = "";
100                pozycjaFaktury.TrE_Atr2_Kod = "";
101                pozycjaFaktury.TrE_Atr2_Wartosc = "";
102                pozycjaFaktury.TrE_Atr3_Kod = "";
103                pozycjaFaktury.TrE_Atr3_Wartosc = "";
104                pozycjaFaktury.TrE_Atr4_Kod = "";
105                pozycjaFaktury.TrE_Atr4_Wartosc = "";
106                pozycjaFaktury.TrE_Atr5_Kod = "";
107                pozycjaFaktury.TrE_Atr5_Wartosc = "";
108
109                pozycjaFaktury.TrE_WartoscZakupuWylicz = 0;
110
111                pozycjaFaktury.TrE_Waluta = "PLN";
112                pozycjaFaktury.TrE_KursNumer = 2;
113                pozycjaFaktury.TrE_KursL = 1.000M;
114                pozycjaFaktury.TrE_KursM = 1;
115
116                if (naglowek.TrN_Export == 7)
117                {
118                    pozycjaFaktury.TrE_Flaga = 4;
119                    pozycjaFaktury.TrE_Cena0WD = row.CENA_JEDN / naglowek.TrN_KursL;
120                    pozycjaFaktury.TrE_CenaWWD = row.NETTO / naglowek.TrN_KursL;
121                    pozycjaFaktury.TrE_WartoscBruttoWal = row.BRUTTO / naglowek.TrN_KursL;
122                    pozycjaFaktury.TrE_WartoscNettoWal = row.NETTO / naglowek.TrN_KursL;
123                }
124
125                CDNDataset.TraElem.AddTraElemRow(pozycjaFaktury);
126
127                lp++;
128            }
129        }
130
131        public void DodajKlienta(EXPODataSet.KLIENCIRow klient)
132        {
133            CDNDataSetTableAdapters.KontrahenciTableAdapter adapter = new CDNDataSetTableAdapters.KontrahenciTableAdapter();
134            adapter.Connection = CDN_conn;
135
136            adapter.FillByKnt_Kod(CDNDataset.Kontrahenci, klient.CustomerID.ToString());
137
138            bool klientIstnieje;
139            CDNDataSet.KontrahenciRow kontrahent;
140
141            if (CDNDataset.Kontrahenci.Count == 0)
142            {
143                klientIstnieje = false;
144                kontrahent = (CDNDataSet.KontrahenciRow)CDNDataset.Kontrahenci.NewRow();
145            }
146            else
147            {
148                klientIstnieje = true;
149                kontrahent = CDNDataset.Kontrahenci[0];
150            }
151
152            kontrahent.Knt_ZgodaNaEFaktury = 0;
153            kontrahent.Knt_PodmiotTyp = 1;
154            kontrahent.Knt_Kod = klient.CustomerID.ToString();
155            kontrahent.Knt_GLN = "";
156            kontrahent.Knt_EAN = "";
157            kontrahent.Knt_Grupa = "ODBIORCA";
158            kontrahent.Knt_Nazwa1 = klient.IsFirstNameNull() ? "" : klient.FirstName;
159            kontrahent.Knt_Nazwa2 = klient.IsLastNameNull() ? "" : klient.LastName;
160            kontrahent.Knt_Nazwa3 = klient.IsOrganizationNameNull() ? "" : klient.OrganizationName;
161
162            string kraj = "";
163            if (!klient.IsCountryNull())
164            {
165                kraj = (klient.Country.Length > 40) ? klient.Country.Substring(0, 40) : klient.Country;
166            }
167
168            kontrahent.Knt_Kraj = kraj;
169
170            string wojewodztwo = "";
171            if (!klient.IsStateNull())
172            {
173                wojewodztwo = (klient.State.Length > 40) ? klient.State.Substring(0, 40) : klient.State;
174            }
175
176            kontrahent.Knt_Wojewodztwo = wojewodztwo;
177
178            kontrahent.Knt_Powiat = "";
179            kontrahent.Knt_Gmina = "";
180
181            string adres = "";
182            if (!klient.IsAddressNull())
183            {
184                adres = (klient.Address.Length > 40) ? klient.Address.Substring(0, 40) : klient.Address;
185            }
186            kontrahent.Knt_Ulica = adres;
187
188            kontrahent.Knt_NrDomu = "";
189            kontrahent.Knt_NrLokalu = "";
190
191            string miasto = "";
192            if (!klient.IsCityNull())
193            {
194                miasto = (klient.City.Length > 40) ? klient.City.Substring(0, 40) : klient.City;
195            }
196            kontrahent.Knt_Miasto = miasto;
197            kontrahent.Knt_Poczta = miasto;
198
199            string kodPocztowy = "";
200            if (!klient.IsPostalCodeNull())
201            {
202                kodPocztowy = (klient.PostalCode.Length > 10) ? klient.PostalCode.Substring(0, 10) : klient.PostalCode;
203            }
204            kontrahent.Knt_KodPocztowy = kodPocztowy;
205
206            kontrahent.Knt_Adres2 = "";
207
208            if (!klient.IsNipNull())
209            {
210                if (klient.nipKraj == "" && klient.Country.Trim() == "Polska")
211                {
212                    kontrahent.Knt_NipKraj = "PL";
213                    kontrahent.Knt_KrajISO = "PL";
214                }
215                else
216                {
217                    kontrahent.Knt_NipKraj = klient.nipKraj.Length > 2 ? klient.nipKraj.Substring(0, 2) : klient.nipKraj;
218                    kontrahent.Knt_KrajISO = klient.nipKraj.Length > 2 ? klient.nipKraj.Substring(0, 2) : klient.nipKraj;
219                }
220
221                kontrahent.Knt_NipE = klient.Nip.Length > 13 ? klient.Nip.Substring(0, 13) : klient.Nip;
222                kontrahent.Knt_Nip = klient.Nip.Length > 13 ? klient.Nip.Substring(0, 13) : klient.Nip;
223
224            }
225            else
226            {
227                kontrahent.Knt_NipKraj = "";
228                kontrahent.Knt_NipE = "";
229                kontrahent.Knt_Nip = "";
230                kontrahent.Knt_KrajISO = "";
231            }
232
233            kontrahent.Knt_Regon = "";
234            kontrahent.Knt_Pesel = "";
235            kontrahent.Knt_Telefon1 = "";
236            kontrahent.Knt_Telefon2 = "";
237            kontrahent.Knt_Fax = "";
238
239            string email = "";
240            if (!klient.IsEmailNull())
241            {
242                email = (klient.Email.Length > 40) ? klient.Email.Substring(0, 40) : klient.Email;
243            }
244            kontrahent.Knt_Email = email;
245
246            kontrahent.Knt_URL = "";
247
248
249            if (!klientIstnieje)
250            {
251                kontrahent.Knt_Zezwolenie = "";
252                kontrahent.Knt_KodTransakcji = "";
253                kontrahent.Knt_RachunekNr = "";
254                kontrahent.Knt_IBAN = 0;
255                kontrahent.Knt_OsTytul = "";
256                kontrahent.Knt_OsPlec = 1;
257                kontrahent.Knt_OsNazwisko = "";
258                kontrahent.Knt_OsKraj = kontrahent.Knt_Kraj;
259                kontrahent.Knt_OsWojewodztwo = kontrahent.Knt_Wojewodztwo;
260                kontrahent.Knt_OsPowiat = "";
261                kontrahent.Knt_OsGmina = "";
262                kontrahent.Knt_OsUlica = "";
263                kontrahent.Knt_OsNrDomu = "";
264                kontrahent.Knt_OsNrLokalu = "";
265                kontrahent.Knt_OsMiasto = "";
266                kontrahent.Knt_OsKodPocztowy = "";
267                kontrahent.Knt_OsPoczta = "";
268                kontrahent.Knt_OsAdres2 = "";
269                kontrahent.Knt_OsTelefon = "";
270                kontrahent.Knt_OsGSM = "";
271                kontrahent.Knt_OsEmail = "";
272                kontrahent.Knt_Informacje = 0;
273                kontrahent.Knt_Upust = 0;
274                kontrahent.Knt_LimitFlag = 0;
275                kontrahent.Knt_LimitKredytu = 0;
276                kontrahent.Knt_LimitPrzeterKredytFlag = 0;
277                kontrahent.Knt_LimitPrzeterKredytWartosc = 0;
278                kontrahent.Knt_Ceny = 0;
279                kontrahent.Knt_FplID = 1;
280                kontrahent.Knt_MaxZwloka = 7;
281                kontrahent.Knt_TerminPlat = 1;
282                kontrahent.Knt_Termin = 7;
283                kontrahent.Knt_KontoOdb = "";
284                kontrahent.Knt_KontoDost = "";
285                kontrahent.Knt_BlokadaDok = 0;
286                kontrahent.Knt_LimitKredytuWal = "";
287                kontrahent.Knt_LimitKredytuWykorzystany = 0;
288                kontrahent.Knt_NieRozliczac = 0;
289                kontrahent.Knt_PodatekVat = 1;
290                kontrahent.Knt_Finalny = 0;
291                kontrahent.Knt_Export = 0;
292
293                if (kontrahent.Knt_NipKraj != "PL")
294                {
295                    kontrahent.Knt_Export = 7;
296                }
297
298                kontrahent.Knt_Rodzaj = 0;
299                kontrahent.Knt_Rodzaj_Dostawca = 0;
300                kontrahent.Knt_Rodzaj_Odbiorca = 1;
301                kontrahent.Knt_Rodzaj_Konkurencja = 0;
302                kontrahent.Knt_Rodzaj_Partner = 0;
303                kontrahent.Knt_Rodzaj_Potencjalny = 0;
304                kontrahent.Knt_Medialny = 0;
305                kontrahent.Knt_MalyPod = 0;
306                kontrahent.Knt_Rolnik = 0;
307                kontrahent.Knt_Nieaktywny = 0;
308                kontrahent.Knt_Chroniony = 0;
309                kontrahent.Knt_Opis = "";
310                kontrahent.Knt_TerminZwrotuKaucji = 60;
311                kontrahent.Knt_NaliczajPlatnosc = 0;
312                kontrahent.Knt_ZakazDokumentowHaMag = 0;
313                kontrahent.Knt_OpeZalID = 11;
314                kontrahent.Knt_StaZalId = 6;
315                kontrahent.Knt_TS_Zal = DateTime.Now;
316            }
317
318            kontrahent.Knt_OpeModID = 11;
319            kontrahent.Knt_StaModId = 6;
320            kontrahent.Knt_TS_Mod = DateTime.Now;
321
322            if (!klientIstnieje)
323            {
324                CDNDataset.Kontrahenci.AddKontrahenciRow(kontrahent);
325            }
326
327        }
328
329        public void DodajNaglowekFaktury(EXPODataSet.FAKTURYRow EXPOfaktura, CDNDataSet.KontrahenciRow kontrahent, decimal sumaNETTO, decimal VAT, decimal rabatProcent)
330        {
331
332            CDNDataSet.TraNagRow nowaFaktura = (CDNDataSet.TraNagRow)CDNDataset.TraNag.NewRow();
333
334            CDNDataSetTableAdapters.DokDefinicjeTableAdapter adapter =
335                new CDNDataSetTableAdapters.DokDefinicjeTableAdapter();
336            adapter.Connection = CDN_conn;
337
338            CDNDataSet.DokDefinicjeRow dokDef = adapter.GetDataByNumerRozHandlowca(EXPOfaktura.NUMER_ROZ)[0];
339
340            nowaFaktura.TrN_DDfId = dokDef.DDf_DDfID;
341            nowaFaktura.TrN_TypDokumentu = 302;
342
343            nowaFaktura.TrN_NumerNr = EXPOfaktura.NUMER;
344            nowaFaktura.TrN_NumerString = "@numerS" + "/" + EXPOfaktura.NUMER_ROZ + "/" + EXPOfaktura.NUMER_ROK;
345            //numerstring'              @P4 varchar(13)     '@numer/O/2007'
346
347            nowaFaktura.TrN_Bufor = 1;
348            nowaFaktura.TrN_DataDok = EXPOfaktura.DATA_WYSTAWIENIA;
349            nowaFaktura.TrN_DataWys = EXPOfaktura.DATA_WYSTAWIENIA;
350            nowaFaktura.TrN_DataOpe = EXPOfaktura.DATA_SPRZEDAZY;
351            nowaFaktura.TrN_NumerObcy = "";
352            nowaFaktura.TrN_DataKur = DateTime.Now;
353            if (istniejeKorekta())
354            {
355                nowaFaktura.TrN_Korekta = 1;
356                nowaFaktura.TrN_Rodzaj = 302001;
357                const int idkorekty = 0;
358                nowaFaktura.TrN_ZwrId = idkorekty;
359            }
360            else
361            {
362                nowaFaktura.TrN_Korekta = 0;
363                nowaFaktura.TrN_Rodzaj = 302000;
364            }
365            nowaFaktura.TrN_Fiskalna = 0;
366            nowaFaktura.TrN_Detal = 0;
367            nowaFaktura.TrN_PodmiotTyp = 1;
368            nowaFaktura.TrN_PodID = kontrahent.Knt_KntId;
369
370            nowaFaktura.TrN_PodNazwa1 = kontrahent.Knt_Nazwa1;
371            nowaFaktura.TrN_PodNazwa2 = kontrahent.Knt_Nazwa2;
372            nowaFaktura.TrN_PodNazwa3 = kontrahent.Knt_Nazwa3;
373
374            nowaFaktura.TrN_PodKraj = kontrahent.Knt_Kraj;
375
376            nowaFaktura.TrN_PodWojewodztwo = kontrahent.Knt_Wojewodztwo;
377            nowaFaktura.TrN_PodPowiat = "";
378            nowaFaktura.TrN_PodGmina = "";
379            nowaFaktura.TrN_PodUlica = kontrahent.Knt_Ulica;
380            nowaFaktura.TrN_PodNrDomu = kontrahent.Knt_NrDomu;
381            nowaFaktura.TrN_PodNrLokalu = kontrahent.Knt_NrLokalu;
382            nowaFaktura.TrN_PodMiasto = kontrahent.Knt_Miasto;
383            nowaFaktura.TrN_PodKodPocztowy = kontrahent.Knt_KodPocztowy;
384            nowaFaktura.TrN_PodPoczta = kontrahent.Knt_Poczta;
385            nowaFaktura.TrN_PodAdres2 = "";
386            nowaFaktura.TrN_PodNipKraj = kontrahent.Knt_NipKraj;
387            nowaFaktura.TrN_PodNipE = kontrahent.Knt_NipE;
388            nowaFaktura.TrN_Finalny = 0;
389            nowaFaktura.TrN_Export = 0;
390            nowaFaktura.TrN_OdbiorcaTyp = 1;
391
392            //ustawione w dataset
393            nowaFaktura.TrN_OdbID = kontrahent.Knt_KntId;
394            nowaFaktura.TrN_OdbNazwa1 = kontrahent.Knt_Nazwa1;
395            nowaFaktura.TrN_OdbNazwa2 = kontrahent.Knt_Nazwa2;
396            nowaFaktura.TrN_OdbNazwa3 = kontrahent.Knt_Nazwa3;
397
398            nowaFaktura.TrN_OdbKraj = kontrahent.Knt_Kraj;
399
400            nowaFaktura.TrN_OdbWojewodztwo = kontrahent.Knt_Wojewodztwo;
401            nowaFaktura.TrN_OdbPowiat = "";
402            nowaFaktura.TrN_OdbGmina = "";
403            nowaFaktura.TrN_OdbUlica = kontrahent.Knt_Ulica;
404            nowaFaktura.TrN_OdbNrDomu = kontrahent.Knt_NrDomu;
405            nowaFaktura.TrN_OdbNrLokalu = kontrahent.Knt_NrLokalu;
406            nowaFaktura.TrN_OdbMiasto = kontrahent.Knt_Miasto;
407            nowaFaktura.TrN_OdbKodPocztowy = kontrahent.Knt_KodPocztowy;
408            nowaFaktura.TrN_OdbPoczta = kontrahent.Knt_Poczta;
409            nowaFaktura.TrN_OdbAdres2 = "";
410            nowaFaktura.TrN_OdbNipKraj = kontrahent.Knt_NipKraj;
411            nowaFaktura.TrN_OdbNipE = kontrahent.Knt_NipE;
412
413
414            nowaFaktura.TrN_KatID = 1;
415            nowaFaktura.TrN_Kategoria = "SPRZEDA¯";
416
417            nowaFaktura.TrN_FPlId = 3;
418            nowaFaktura.TrN_Termin = EXPOfaktura.TERMIN_ZAPLATY;
419
420            //NETT, VAT itp.
421            nowaFaktura.TrN_RazemNetto = sumaNETTO;
422            nowaFaktura.TrN_RazemVAT = VAT * sumaNETTO;
423            nowaFaktura.TrN_RazemBrutto = (1 + VAT) * nowaFaktura.TrN_RazemNetto;
424            nowaFaktura.TrN_BlokadaPlatnosci = 0;
425            nowaFaktura.TrN_MagZrdId = 1;
426            nowaFaktura.TrN_TypNB = 1;
427            nowaFaktura.TrN_Rabat = rabatProcent * 100;
428
429            nowaFaktura.TrN_Odebral = EXPOfaktura.IsPODPIS_ODEBRALNull()
430                                          ? "zgodnie z oœwiadczeniem nabywcy"
431                                          : EXPOfaktura.PODPIS_ODEBRAL;
432
433            nowaFaktura.TrN_Opis = EXPOfaktura.opis;
434            nowaFaktura.TrN_OpeZalID = 9;
435            nowaFaktura.TrN_TS_Zal = EXPOfaktura.TERMIN_ZAPLATY;
436            nowaFaktura.TrN_OpeModID = 9;
437            nowaFaktura.TrN_TS_Mod = EXPOfaktura.TERMIN_ZAPLATY;
438            nowaFaktura.TrN_NotaKorPrzed = "";
439            nowaFaktura.TrN_NotaKorPo = "";
440            nowaFaktura.TrN_TrSTyp = 3;
441            nowaFaktura.TrN_RazemNettoWal = sumaNETTO;
442            nowaFaktura.TrN_Waluta = "";
443            nowaFaktura.TrN_KursNumer = 2;
444            nowaFaktura.TrN_KursL = (decimal)1.00;
445            nowaFaktura.TrN_KursM = 1;
446            nowaFaktura.TrN_PodNazwa3 = "";
447            nowaFaktura.TrN_OdbNazwa3 = "";
448            nowaFaktura.TrN_Centrala = 0;
449            nowaFaktura.TrN_PodmiotGLN = "";
450            nowaFaktura.TrN_OdbiorcaGLN = "";
451            nowaFaktura.TrN_NumerPelnyPrw = "";
452            nowaFaktura.TrN_PlatElemWalSys = 0;
453
454            nowaFaktura.TrN_RazemVATWal = VAT * 100;
455            nowaFaktura.TrN_RazemBruttoWal = (1 + VAT) * nowaFaktura.TrN_RazemNetto;
456            nowaFaktura.TrN_StaZalId = 1;
457            nowaFaktura.TrN_StaModId = 1;
458            nowaFaktura.TrN_KodTransakcji = "";
459
460            DateTime datadok = DateTime.Now;
461            nowaFaktura.TrN_DataTransportu = datadok;
462            nowaFaktura.TrN_KodKraju = "";
463            nowaFaktura.TrN_Anulowany = 0;
464            nowaFaktura.TrN_TerminZwrotuKaucji = datadok.AddDays(30);
465            nowaFaktura.TrN_PlatKaucje = 0;
466            nowaFaktura.TrN_TaxFreePotwierdzony = 0;
467            nowaFaktura.TrN_VatDlaDokWal = 0;
468
469            if (!EXPOfaktura.Iswaluta_bruttoNull() && EXPOfaktura.waluta_brutto > 0)
470            {
471                nowaFaktura.TrN_Export = 7;
472                nowaFaktura.TrN_WartoscZakupu = 0;
473                nowaFaktura.TrN_RazemVATWal = VAT * 100;
474                nowaFaktura.TrN_RazemBruttoWal = (decimal)EXPOfaktura.waluta_brutto;
475                nowaFaktura.TrN_RazemNettoWal = ((decimal)EXPOfaktura.waluta_brutto / (1 + VAT));
476                nowaFaktura.TrN_Waluta = EXPOfaktura.Iswaluta_mianoNull() ? "" : EXPOfaktura.waluta_miano;
477                nowaFaktura.TrN_KursL = EXPOfaktura.Iswaluta_kursNull() ? 1M : (decimal)EXPOfaktura.waluta_kurs;
478                nowaFaktura.TrN_KursM = 1;
479                nowaFaktura.TrN_KursNumer = 1;
480            }
481
482            CDNDataset.TraNag.AddTraNagRow(nowaFaktura);
483        }
484
485        public void DodajVAT(CDNDataSet.TraNagRow naglowekFaktury, decimal sumaNetto, decimal stawkaVAT)
486        {
487            CDNDataSet.TraVatRow nowyVat = (CDNDataSet.TraVatRow)CDNDataset.TraVat.NewRow();
488
489            nowyVat.TrV_TrNID = naglowekFaktury.TrN_TrNID;
490            nowyVat.TrV_Stawka = stawkaVAT * 100;
491            nowyVat.TrV_Flaga = 2;
492            nowyVat.TrV_Zrodlowa = 0.00M;
493            nowyVat.TrV_Netto = sumaNetto;
494            nowyVat.TrV_VAT = stawkaVAT * sumaNetto;
495            nowyVat.TrV_NettoWal = sumaNetto;
496            nowyVat.TrV_VATWal = stawkaVAT * sumaNetto;
497            nowyVat.TrV_Typ = 0;
498
499            if (naglowekFaktury.TrN_Export == 7)
500            {
501                nowyVat.TrV_Flaga = 4;
502                nowyVat.TrV_VATWal = naglowekFaktury.TrN_RazemBruttoWal - naglowekFaktury.TrN_RazemNettoWal;
503                nowyVat.TrV_NettoWal = naglowekFaktury.TrN_RazemNettoWal;
504            }
505
506            CDNDataset.TraVat.AddTraVatRow(nowyVat);
507        }
508
509        public bool isNumeric(string a)
510        {
511            Regex reNum = new Regex(@"^\d+$");
512            return reNum.Match(a).Success;
513        }
514
515        public bool istniejeKorekta()
516        {
517            return false;
518        }
519
520        //przyszle okresy
521        public int podajIDKategorii(int rok, int ms)
522        {
523            switch (rok)
524            {
525                case 2008:
526                    switch (ms)
527                    {
528                        case 6:
529                            return 107;
530                        case 7:
531                            return 108;
532                        case 8:
533                            return 109;
534                        case 9:
535                            return 110;
536                        case 10:
537                            return 111;
538                        case 11:
539                            return 112;
540                        case 12:
541                            return 113;
542                    }
543                    break;
544                case 2009:
545                    switch (ms)
546                    {
547                        case 1:
548                            return 121;
549                        case 2:
550                            return 122;
551                        case 3:
552                            return 123;
553                        case 4:
554                            return 124;
555                        case 5:
556                            return 125;
557                    }
558                    break;
559            }
560
561            return 1;
562        }
563
564        public string PodajKrajNIP(string NIP)
565        {
566            string nip = NIP.Replace(" ", "").Replace("-", "").Trim();
567
568            if (polskiNIP(nip))
569            {
570                return "PL";
571            }
572            if ((nip.Length >= 2) && (!isNumeric(nip.Substring(0, 2))))
573            {
574                return nip.Substring(0, 2);
575            }
576
577            return "";
578        }
579
580        public string PodajNumerNIP(string NIP)
581        {
582            string nip = NIP.Replace(" ", "").Replace("-", "").Trim();
583
584            if (polskiNIP(nip))
585            {
586                return nip.Length > 13 ? nip.Substring(0, 13) : nip;
587            }
588            if ((nip.Length >= 2) && (!isNumeric(nip.Substring(0, 2))))
589            {
590                return nip.Length > 15 ? nip.Substring(2, 13) : nip.Substring(2, nip.Length - 2);
591            }
592            return nip.Length > 13 ? nip.Substring(0, 13) : nip;
593        }
594
595        public bool polskiNIP(string nip)
596        {
597            int[] wagi = new int[] { 6, 5, 7, 2, 3, 4, 5, 6, 7 };
598
599            int suma = 0;
600            string shortNIP = nip.Replace(" ", "").Replace("-", "").Trim();
601
602            if ((shortNIP.Length == 10) && isNumeric(shortNIP))
603            {
604
605                for (int i = 0; i <= 8; i++)
606                {
607                    int iloczyn = Convert.ToInt32(shortNIP.Substring(i, 1)) * wagi[i];
608                    suma = suma + iloczyn;
609                }
610                int kontrolny = suma % 11;
611
612                if (kontrolny == Convert.ToInt32(shortNIP.Substring(shortNIP.Length - 1, 1)))
613                {
614                    return true;
615                }
616            }
617            return false;
618        }
619    }
620}
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.