using System; using System.Data.SqlClient; using System.Text.RegularExpressions; namespace ExportFaktur { class ExpoToCDNExport { public CDNDataSet CDNDataset; readonly SqlConnection CDN_conn = new SqlConnection(ConnString.CDNConnection); // Public Methods (10)  public void DodajElementyFaktury(EXPODataSet.FAKTURA_DETAILSDataTable table, CDNDataSet.TraNagRow naglowekFaktury) { int lp = 1; CDNDataSet.TraNagRow naglowek = naglowekFaktury; foreach (EXPODataSet.FAKTURA_DETAILSRow row in table.Rows) { CDNDataSet.TraElemRow pozycjaFaktury = (CDNDataSet.TraElemRow)CDNDataset.TraElem.NewRow(); pozycjaFaktury.TrE_TrNId = naglowek.TrN_TrNID; // pozycjaFaktury.tre_tran if (istniejeKorekta()) { pozycjaFaktury.TrE_ZwrId = 0; } pozycjaFaktury.TrE_Lp = lp; pozycjaFaktury.TrE_TypDokumentu = 302; pozycjaFaktury.TrE_Aktywny = 1; pozycjaFaktury.TrE_DataDok = naglowek.TrN_DataDok; pozycjaFaktury.TrE_DataOpe = naglowek.TrN_DataOpe; pozycjaFaktury.TrE_PodmiotTyp = 1; pozycjaFaktury.TrE_PodID = naglowek.TrN_PodID; if ((row.ROK > naglowekFaktury.TrN_DataDok.Year) || ((row.ROK == naglowekFaktury.TrN_DataDok.Year) && (row.MIESIAC > naglowekFaktury.TrN_DataDok.Month))) { pozycjaFaktury.TrE_KatID = podajIDKategorii(row.ROK, row.MIESIAC); } else { pozycjaFaktury.TrE_KatID = naglowek.TrN_KatID; } pozycjaFaktury.TrE_TwrId = 1; pozycjaFaktury.TrE_TwrNazwa = row.NAZWA_USLUGI + " " + row.MIESIAC + "/" + row.ROK; pozycjaFaktury.TrE_TwrOpis = ""; pozycjaFaktury.TrE_TwrSWW = ""; pozycjaFaktury.TrE_Stawka = (decimal)row.S_VAT * 100; //svat' @P14 numeric(5,2) 22.00 pozycjaFaktury.TrE_Flaga = 2; pozycjaFaktury.TrE_Zrodlowa = 0.00M; pozycjaFaktury.TrE_TwCNumer = 2; pozycjaFaktury.TrE_TypNB = 1; pozycjaFaktury.TrE_CenaT = row.NETTO; pozycjaFaktury.TrE_Cena0 = row.NETTO; pozycjaFaktury.TrE_Rabat = (decimal)row.UPUST_PR * 100; pozycjaFaktury.TrE_CenaW = row.NETTO; pozycjaFaktury.TrE_Ilosc = 1M; pozycjaFaktury.TrE_Jm = "szt."; pozycjaFaktury.TrE_JmCalkowite = 0; pozycjaFaktury.TrE_JMPrzelicznikL = 1.00M; pozycjaFaktury.TrE_JMPrzelicznikM = 1; pozycjaFaktury.TrE_IloscJM = pozycjaFaktury.TrE_Ilosc; pozycjaFaktury.TrE_WartoscNetto = row.NETTO; pozycjaFaktury.TrE_WartoscBrutto = row.BRUTTO; pozycjaFaktury.TrE_TwrEAN = ""; pozycjaFaktury.TrE_TwrNumerKat = ""; pozycjaFaktury.TrE_TwrKod = "REKLAMA PRASOWA"; pozycjaFaktury.TrE_JmZ = ""; pozycjaFaktury.TrE_LpPow = lp; pozycjaFaktury.TrE_Cena0WD = row.CENA_JEDN; pozycjaFaktury.TrE_CenaWWD = row.NETTO; pozycjaFaktury.TrE_WartoscNettoWal = row.NETTO; pozycjaFaktury.TrE_WartoscBruttoWal = row.BRUTTO; pozycjaFaktury.TrE_Prog = 0.00M; pozycjaFaktury.TrE_UpustTyp = 0; pozycjaFaktury.TrE_Upust = 0.00M; pozycjaFaktury.TrE_UpustKnt = 0.00M; pozycjaFaktury.TrE_UpustKntTyp = 0; pozycjaFaktury.TrE_KosztUslugi = 0.00M; pozycjaFaktury.TrE_RabatPromocyjny = 0.0000M; pozycjaFaktury.TrE_RabatKorekta = 0.0000M; pozycjaFaktury.TrE_Kaucja = 0; pozycjaFaktury.TrE_IloscKW = 0.0000M; pozycjaFaktury.TrE_IloscJMKW = 0.0000M; pozycjaFaktury.TrE_MagId = 1; pozycjaFaktury.TrE_Atr1_Kod = ""; pozycjaFaktury.TrE_Atr1_Wartosc = ""; pozycjaFaktury.TrE_Atr2_Kod = ""; pozycjaFaktury.TrE_Atr2_Wartosc = ""; pozycjaFaktury.TrE_Atr3_Kod = ""; pozycjaFaktury.TrE_Atr3_Wartosc = ""; pozycjaFaktury.TrE_Atr4_Kod = ""; pozycjaFaktury.TrE_Atr4_Wartosc = ""; pozycjaFaktury.TrE_Atr5_Kod = ""; pozycjaFaktury.TrE_Atr5_Wartosc = ""; pozycjaFaktury.TrE_WartoscZakupuWylicz = 0; pozycjaFaktury.TrE_Waluta = "PLN"; pozycjaFaktury.TrE_KursNumer = 2; pozycjaFaktury.TrE_KursL = 1.000M; pozycjaFaktury.TrE_KursM = 1; if (naglowek.TrN_Export == 7) { pozycjaFaktury.TrE_Flaga = 4; pozycjaFaktury.TrE_Cena0WD = row.CENA_JEDN / naglowek.TrN_KursL; pozycjaFaktury.TrE_CenaWWD = row.NETTO / naglowek.TrN_KursL; pozycjaFaktury.TrE_WartoscBruttoWal = row.BRUTTO / naglowek.TrN_KursL; pozycjaFaktury.TrE_WartoscNettoWal = row.NETTO / naglowek.TrN_KursL; } CDNDataset.TraElem.AddTraElemRow(pozycjaFaktury); lp++; } } public void DodajKlienta(EXPODataSet.KLIENCIRow klient) { CDNDataSetTableAdapters.KontrahenciTableAdapter adapter = new CDNDataSetTableAdapters.KontrahenciTableAdapter(); adapter.Connection = CDN_conn; adapter.FillByKnt_Kod(CDNDataset.Kontrahenci, klient.CustomerID.ToString()); bool klientIstnieje; CDNDataSet.KontrahenciRow kontrahent; if (CDNDataset.Kontrahenci.Count == 0) { klientIstnieje = false; kontrahent = (CDNDataSet.KontrahenciRow)CDNDataset.Kontrahenci.NewRow(); } else { klientIstnieje = true; kontrahent = CDNDataset.Kontrahenci[0]; } kontrahent.Knt_ZgodaNaEFaktury = 0; kontrahent.Knt_PodmiotTyp = 1; kontrahent.Knt_Kod = klient.CustomerID.ToString(); kontrahent.Knt_GLN = ""; kontrahent.Knt_EAN = ""; kontrahent.Knt_Grupa = "ODBIORCA"; kontrahent.Knt_Nazwa1 = klient.IsFirstNameNull() ? "" : klient.FirstName; kontrahent.Knt_Nazwa2 = klient.IsLastNameNull() ? "" : klient.LastName; kontrahent.Knt_Nazwa3 = klient.IsOrganizationNameNull() ? "" : klient.OrganizationName; string kraj = ""; if (!klient.IsCountryNull()) { kraj = (klient.Country.Length > 40) ? klient.Country.Substring(0, 40) : klient.Country; } kontrahent.Knt_Kraj = kraj; string wojewodztwo = ""; if (!klient.IsStateNull()) { wojewodztwo = (klient.State.Length > 40) ? klient.State.Substring(0, 40) : klient.State; } kontrahent.Knt_Wojewodztwo = wojewodztwo; kontrahent.Knt_Powiat = ""; kontrahent.Knt_Gmina = ""; string adres = ""; if (!klient.IsAddressNull()) { adres = (klient.Address.Length > 40) ? klient.Address.Substring(0, 40) : klient.Address; } kontrahent.Knt_Ulica = adres; kontrahent.Knt_NrDomu = ""; kontrahent.Knt_NrLokalu = ""; string miasto = ""; if (!klient.IsCityNull()) { miasto = (klient.City.Length > 40) ? klient.City.Substring(0, 40) : klient.City; } kontrahent.Knt_Miasto = miasto; kontrahent.Knt_Poczta = miasto; string kodPocztowy = ""; if (!klient.IsPostalCodeNull()) { kodPocztowy = (klient.PostalCode.Length > 10) ? klient.PostalCode.Substring(0, 10) : klient.PostalCode; } kontrahent.Knt_KodPocztowy = kodPocztowy; kontrahent.Knt_Adres2 = ""; if (!klient.IsNipNull()) { if (klient.nipKraj == "" && klient.Country.Trim() == "Polska") { kontrahent.Knt_NipKraj = "PL"; kontrahent.Knt_KrajISO = "PL"; } else { kontrahent.Knt_NipKraj = klient.nipKraj.Length > 2 ? klient.nipKraj.Substring(0, 2) : klient.nipKraj; kontrahent.Knt_KrajISO = klient.nipKraj.Length > 2 ? klient.nipKraj.Substring(0, 2) : klient.nipKraj; } kontrahent.Knt_NipE = klient.Nip.Length > 13 ? klient.Nip.Substring(0, 13) : klient.Nip; kontrahent.Knt_Nip = klient.Nip.Length > 13 ? klient.Nip.Substring(0, 13) : klient.Nip; } else { kontrahent.Knt_NipKraj = ""; kontrahent.Knt_NipE = ""; kontrahent.Knt_Nip = ""; kontrahent.Knt_KrajISO = ""; } kontrahent.Knt_Regon = ""; kontrahent.Knt_Pesel = ""; kontrahent.Knt_Telefon1 = ""; kontrahent.Knt_Telefon2 = ""; kontrahent.Knt_Fax = ""; string email = ""; if (!klient.IsEmailNull()) { email = (klient.Email.Length > 40) ? klient.Email.Substring(0, 40) : klient.Email; } kontrahent.Knt_Email = email; kontrahent.Knt_URL = ""; if (!klientIstnieje) { kontrahent.Knt_Zezwolenie = ""; kontrahent.Knt_KodTransakcji = ""; kontrahent.Knt_RachunekNr = ""; kontrahent.Knt_IBAN = 0; kontrahent.Knt_OsTytul = ""; kontrahent.Knt_OsPlec = 1; kontrahent.Knt_OsNazwisko = ""; kontrahent.Knt_OsKraj = kontrahent.Knt_Kraj; kontrahent.Knt_OsWojewodztwo = kontrahent.Knt_Wojewodztwo; kontrahent.Knt_OsPowiat = ""; kontrahent.Knt_OsGmina = ""; kontrahent.Knt_OsUlica = ""; kontrahent.Knt_OsNrDomu = ""; kontrahent.Knt_OsNrLokalu = ""; kontrahent.Knt_OsMiasto = ""; kontrahent.Knt_OsKodPocztowy = ""; kontrahent.Knt_OsPoczta = ""; kontrahent.Knt_OsAdres2 = ""; kontrahent.Knt_OsTelefon = ""; kontrahent.Knt_OsGSM = ""; kontrahent.Knt_OsEmail = ""; kontrahent.Knt_Informacje = 0; kontrahent.Knt_Upust = 0; kontrahent.Knt_LimitFlag = 0; kontrahent.Knt_LimitKredytu = 0; kontrahent.Knt_LimitPrzeterKredytFlag = 0; kontrahent.Knt_LimitPrzeterKredytWartosc = 0; kontrahent.Knt_Ceny = 0; kontrahent.Knt_FplID = 1; kontrahent.Knt_MaxZwloka = 7; kontrahent.Knt_TerminPlat = 1; kontrahent.Knt_Termin = 7; kontrahent.Knt_KontoOdb = ""; kontrahent.Knt_KontoDost = ""; kontrahent.Knt_BlokadaDok = 0; kontrahent.Knt_LimitKredytuWal = ""; kontrahent.Knt_LimitKredytuWykorzystany = 0; kontrahent.Knt_NieRozliczac = 0; kontrahent.Knt_PodatekVat = 1; kontrahent.Knt_Finalny = 0; kontrahent.Knt_Export = 0; if (kontrahent.Knt_NipKraj != "PL") { kontrahent.Knt_Export = 7; } kontrahent.Knt_Rodzaj = 0; kontrahent.Knt_Rodzaj_Dostawca = 0; kontrahent.Knt_Rodzaj_Odbiorca = 1; kontrahent.Knt_Rodzaj_Konkurencja = 0; kontrahent.Knt_Rodzaj_Partner = 0; kontrahent.Knt_Rodzaj_Potencjalny = 0; kontrahent.Knt_Medialny = 0; kontrahent.Knt_MalyPod = 0; kontrahent.Knt_Rolnik = 0; kontrahent.Knt_Nieaktywny = 0; kontrahent.Knt_Chroniony = 0; kontrahent.Knt_Opis = ""; kontrahent.Knt_TerminZwrotuKaucji = 60; kontrahent.Knt_NaliczajPlatnosc = 0; kontrahent.Knt_ZakazDokumentowHaMag = 0; kontrahent.Knt_OpeZalID = 11; kontrahent.Knt_StaZalId = 6; kontrahent.Knt_TS_Zal = DateTime.Now; } kontrahent.Knt_OpeModID = 11; kontrahent.Knt_StaModId = 6; kontrahent.Knt_TS_Mod = DateTime.Now; if (!klientIstnieje) { CDNDataset.Kontrahenci.AddKontrahenciRow(kontrahent); } } public void DodajNaglowekFaktury(EXPODataSet.FAKTURYRow EXPOfaktura, CDNDataSet.KontrahenciRow kontrahent, decimal sumaNETTO, decimal VAT, decimal rabatProcent) { CDNDataSet.TraNagRow nowaFaktura = (CDNDataSet.TraNagRow)CDNDataset.TraNag.NewRow(); CDNDataSetTableAdapters.DokDefinicjeTableAdapter adapter = new CDNDataSetTableAdapters.DokDefinicjeTableAdapter(); adapter.Connection = CDN_conn; CDNDataSet.DokDefinicjeRow dokDef = adapter.GetDataByNumerRozHandlowca(EXPOfaktura.NUMER_ROZ)[0]; nowaFaktura.TrN_DDfId = dokDef.DDf_DDfID; nowaFaktura.TrN_TypDokumentu = 302; nowaFaktura.TrN_NumerNr = EXPOfaktura.NUMER; nowaFaktura.TrN_NumerString = "@numerS" + "/" + EXPOfaktura.NUMER_ROZ + "/" + EXPOfaktura.NUMER_ROK; //numerstring' @P4 varchar(13) '@numer/O/2007' nowaFaktura.TrN_Bufor = 1; nowaFaktura.TrN_DataDok = EXPOfaktura.DATA_WYSTAWIENIA; nowaFaktura.TrN_DataWys = EXPOfaktura.DATA_WYSTAWIENIA; nowaFaktura.TrN_DataOpe = EXPOfaktura.DATA_SPRZEDAZY; nowaFaktura.TrN_NumerObcy = ""; nowaFaktura.TrN_DataKur = DateTime.Now; if (istniejeKorekta()) { nowaFaktura.TrN_Korekta = 1; nowaFaktura.TrN_Rodzaj = 302001; const int idkorekty = 0; nowaFaktura.TrN_ZwrId = idkorekty; } else { nowaFaktura.TrN_Korekta = 0; nowaFaktura.TrN_Rodzaj = 302000; } nowaFaktura.TrN_Fiskalna = 0; nowaFaktura.TrN_Detal = 0; nowaFaktura.TrN_PodmiotTyp = 1; nowaFaktura.TrN_PodID = kontrahent.Knt_KntId; nowaFaktura.TrN_PodNazwa1 = kontrahent.Knt_Nazwa1; nowaFaktura.TrN_PodNazwa2 = kontrahent.Knt_Nazwa2; nowaFaktura.TrN_PodNazwa3 = kontrahent.Knt_Nazwa3; nowaFaktura.TrN_PodKraj = kontrahent.Knt_Kraj; nowaFaktura.TrN_PodWojewodztwo = kontrahent.Knt_Wojewodztwo; nowaFaktura.TrN_PodPowiat = ""; nowaFaktura.TrN_PodGmina = ""; nowaFaktura.TrN_PodUlica = kontrahent.Knt_Ulica; nowaFaktura.TrN_PodNrDomu = kontrahent.Knt_NrDomu; nowaFaktura.TrN_PodNrLokalu = kontrahent.Knt_NrLokalu; nowaFaktura.TrN_PodMiasto = kontrahent.Knt_Miasto; nowaFaktura.TrN_PodKodPocztowy = kontrahent.Knt_KodPocztowy; nowaFaktura.TrN_PodPoczta = kontrahent.Knt_Poczta; nowaFaktura.TrN_PodAdres2 = ""; nowaFaktura.TrN_PodNipKraj = kontrahent.Knt_NipKraj; nowaFaktura.TrN_PodNipE = kontrahent.Knt_NipE; nowaFaktura.TrN_Finalny = 0; nowaFaktura.TrN_Export = 0; nowaFaktura.TrN_OdbiorcaTyp = 1; //ustawione w dataset nowaFaktura.TrN_OdbID = kontrahent.Knt_KntId; nowaFaktura.TrN_OdbNazwa1 = kontrahent.Knt_Nazwa1; nowaFaktura.TrN_OdbNazwa2 = kontrahent.Knt_Nazwa2; nowaFaktura.TrN_OdbNazwa3 = kontrahent.Knt_Nazwa3; nowaFaktura.TrN_OdbKraj = kontrahent.Knt_Kraj; nowaFaktura.TrN_OdbWojewodztwo = kontrahent.Knt_Wojewodztwo; nowaFaktura.TrN_OdbPowiat = ""; nowaFaktura.TrN_OdbGmina = ""; nowaFaktura.TrN_OdbUlica = kontrahent.Knt_Ulica; nowaFaktura.TrN_OdbNrDomu = kontrahent.Knt_NrDomu; nowaFaktura.TrN_OdbNrLokalu = kontrahent.Knt_NrLokalu; nowaFaktura.TrN_OdbMiasto = kontrahent.Knt_Miasto; nowaFaktura.TrN_OdbKodPocztowy = kontrahent.Knt_KodPocztowy; nowaFaktura.TrN_OdbPoczta = kontrahent.Knt_Poczta; nowaFaktura.TrN_OdbAdres2 = ""; nowaFaktura.TrN_OdbNipKraj = kontrahent.Knt_NipKraj; nowaFaktura.TrN_OdbNipE = kontrahent.Knt_NipE; nowaFaktura.TrN_KatID = 1; nowaFaktura.TrN_Kategoria = "SPRZEDAŻ"; nowaFaktura.TrN_FPlId = 3; nowaFaktura.TrN_Termin = EXPOfaktura.TERMIN_ZAPLATY; //NETT, VAT itp. nowaFaktura.TrN_RazemNetto = sumaNETTO; nowaFaktura.TrN_RazemVAT = VAT * sumaNETTO; nowaFaktura.TrN_RazemBrutto = (1 + VAT) * nowaFaktura.TrN_RazemNetto; nowaFaktura.TrN_BlokadaPlatnosci = 0; nowaFaktura.TrN_MagZrdId = 1; nowaFaktura.TrN_TypNB = 1; nowaFaktura.TrN_Rabat = rabatProcent * 100; nowaFaktura.TrN_Odebral = EXPOfaktura.IsPODPIS_ODEBRALNull() ? "zgodnie z oświadczeniem nabywcy" : EXPOfaktura.PODPIS_ODEBRAL; nowaFaktura.TrN_Opis = EXPOfaktura.opis; nowaFaktura.TrN_OpeZalID = 9; nowaFaktura.TrN_TS_Zal = EXPOfaktura.TERMIN_ZAPLATY; nowaFaktura.TrN_OpeModID = 9; nowaFaktura.TrN_TS_Mod = EXPOfaktura.TERMIN_ZAPLATY; nowaFaktura.TrN_NotaKorPrzed = ""; nowaFaktura.TrN_NotaKorPo = ""; nowaFaktura.TrN_TrSTyp = 3; nowaFaktura.TrN_RazemNettoWal = sumaNETTO; nowaFaktura.TrN_Waluta = ""; nowaFaktura.TrN_KursNumer = 2; nowaFaktura.TrN_KursL = (decimal)1.00; nowaFaktura.TrN_KursM = 1; nowaFaktura.TrN_PodNazwa3 = ""; nowaFaktura.TrN_OdbNazwa3 = ""; nowaFaktura.TrN_Centrala = 0; nowaFaktura.TrN_PodmiotGLN = ""; nowaFaktura.TrN_OdbiorcaGLN = ""; nowaFaktura.TrN_NumerPelnyPrw = ""; nowaFaktura.TrN_PlatElemWalSys = 0; nowaFaktura.TrN_RazemVATWal = VAT * 100; nowaFaktura.TrN_RazemBruttoWal = (1 + VAT) * nowaFaktura.TrN_RazemNetto; nowaFaktura.TrN_StaZalId = 1; nowaFaktura.TrN_StaModId = 1; nowaFaktura.TrN_KodTransakcji = ""; DateTime datadok = DateTime.Now; nowaFaktura.TrN_DataTransportu = datadok; nowaFaktura.TrN_KodKraju = ""; nowaFaktura.TrN_Anulowany = 0; nowaFaktura.TrN_TerminZwrotuKaucji = datadok.AddDays(30); nowaFaktura.TrN_PlatKaucje = 0; nowaFaktura.TrN_TaxFreePotwierdzony = 0; nowaFaktura.TrN_VatDlaDokWal = 0; if (!EXPOfaktura.Iswaluta_bruttoNull() && EXPOfaktura.waluta_brutto > 0) { nowaFaktura.TrN_Export = 7; nowaFaktura.TrN_WartoscZakupu = 0; nowaFaktura.TrN_RazemVATWal = VAT * 100; nowaFaktura.TrN_RazemBruttoWal = (decimal)EXPOfaktura.waluta_brutto; nowaFaktura.TrN_RazemNettoWal = ((decimal)EXPOfaktura.waluta_brutto / (1 + VAT)); nowaFaktura.TrN_Waluta = EXPOfaktura.Iswaluta_mianoNull() ? "" : EXPOfaktura.waluta_miano; nowaFaktura.TrN_KursL = EXPOfaktura.Iswaluta_kursNull() ? 1M : (decimal)EXPOfaktura.waluta_kurs; nowaFaktura.TrN_KursM = 1; nowaFaktura.TrN_KursNumer = 1; } CDNDataset.TraNag.AddTraNagRow(nowaFaktura); } public void DodajVAT(CDNDataSet.TraNagRow naglowekFaktury, decimal sumaNetto, decimal stawkaVAT) { CDNDataSet.TraVatRow nowyVat = (CDNDataSet.TraVatRow)CDNDataset.TraVat.NewRow(); nowyVat.TrV_TrNID = naglowekFaktury.TrN_TrNID; nowyVat.TrV_Stawka = stawkaVAT * 100; nowyVat.TrV_Flaga = 2; nowyVat.TrV_Zrodlowa = 0.00M; nowyVat.TrV_Netto = sumaNetto; nowyVat.TrV_VAT = stawkaVAT * sumaNetto; nowyVat.TrV_NettoWal = sumaNetto; nowyVat.TrV_VATWal = stawkaVAT * sumaNetto; nowyVat.TrV_Typ = 0; if (naglowekFaktury.TrN_Export == 7) { nowyVat.TrV_Flaga = 4; nowyVat.TrV_VATWal = naglowekFaktury.TrN_RazemBruttoWal - naglowekFaktury.TrN_RazemNettoWal; nowyVat.TrV_NettoWal = naglowekFaktury.TrN_RazemNettoWal; } CDNDataset.TraVat.AddTraVatRow(nowyVat); } public bool isNumeric(string a) { Regex reNum = new Regex(@"^\d+$"); return reNum.Match(a).Success; } public bool istniejeKorekta() { return false; } //przyszle okresy public int podajIDKategorii(int rok, int ms) { switch (rok) { case 2008: switch (ms) { case 6: return 107; case 7: return 108; case 8: return 109; case 9: return 110; case 10: return 111; case 11: return 112; case 12: return 113; } break; case 2009: switch (ms) { case 1: return 121; case 2: return 122; case 3: return 123; case 4: return 124; case 5: return 125; } break; } return 1; } public string PodajKrajNIP(string NIP) { string nip = NIP.Replace(" ", "").Replace("-", "").Trim(); if (polskiNIP(nip)) { return "PL"; } if ((nip.Length >= 2) && (!isNumeric(nip.Substring(0, 2)))) { return nip.Substring(0, 2); } return ""; } public string PodajNumerNIP(string NIP) { string nip = NIP.Replace(" ", "").Replace("-", "").Trim(); if (polskiNIP(nip)) { return nip.Length > 13 ? nip.Substring(0, 13) : nip; } if ((nip.Length >= 2) && (!isNumeric(nip.Substring(0, 2)))) { return nip.Length > 15 ? nip.Substring(2, 13) : nip.Substring(2, nip.Length - 2); } return nip.Length > 13 ? nip.Substring(0, 13) : nip; } public bool polskiNIP(string nip) { int[] wagi = new int[] { 6, 5, 7, 2, 3, 4, 5, 6, 7 }; int suma = 0; string shortNIP = nip.Replace(" ", "").Replace("-", "").Trim(); if ((shortNIP.Length == 10) && isNumeric(shortNIP)) { for (int i = 0; i <= 8; i++) { int iloczyn = Convert.ToInt32(shortNIP.Substring(i, 1)) * wagi[i]; suma = suma + iloczyn; } int kontrolny = suma % 11; if (kontrolny == Convert.ToInt32(shortNIP.Substring(shortNIP.Length - 1, 1))) { return true; } } return false; } } }