private void convertKarty(SkladDataFile file) { foreach (SkladDataObj obj in file.Data) { var d = obj.Items; string kod = S3_Katalog.GetID(d["CisloKarty"].GetNum()); var artikl = new S5DataArtikl() { }; artikl.ID = S0_IDs.GetArtiklID(kod); if (artikl.ID == null) { continue; } var kodDodavatele = S3_Adresar.GetDodID(d["CisloDodavatele"].GetNum()); artikl.HlavniDodavatel_ID = S0_IDs.GetArtiklDodavatelID(artikl.ID, S0_IDs.GetFirmaID(kodDodavatele)); var mernaJednotka = d["MernaJednotka"].GetNoSpaces().RemoveDiacritics().ToLower(); var jednotkaID = S0_IDs.GetJednotkaID(mernaJednotka); var hlavniJednotkaID = S0_IDs.GetArtiklJednotkaID(artikl.ID, jednotkaID); artikl.Jednotky = hlavniJednotkaID != null ? new S5DataArtiklJednotky() { SeznamJednotek = new S5DataArtiklJednotkySeznamJednotek() { ArtiklJednotka = new S5DataArtiklJednotkySeznamJednotekArtiklJednotka[] { new S5DataArtiklJednotkySeznamJednotekArtiklJednotka() { ID = hlavniJednotkaID, NedelitelneMnozstvi = d["MinFol"].GetBoolean() == "True" ? d["VFol"].GetNum() : null } } } } : null; _artikly.Add(artikl); } }
private void convertKarty(SkladDataFile file) { var eobchodID = S0_IDs.GetElektronickyObchodID("EO_PEMA"); foreach (SkladDataObj obj in file.Data) { var d = obj.Items; var nazevZbozi = obj.GetNazevZbozi(); var artikl = new S5DataArtikl() { Kod = GetID(d["CisloKarty"].GetNum()), PosledniCena = d["NakupCena"].GetDecimal(), Zkratka12 = d["Pozice"].GetAlfaNum().ToUpper(), Zkratka20 = d["NazevZbozi2"].GetText() }; var druhZboziKod = "ZBO"; var regexLom = new Regex(@"^\\[a-zA-Z0-9]+\\"); var regexObal = new Regex(@"^\|[a-zA-Z0-9]"); var regexZrus = new Regex(@"^\|\|[0-9]"); if (regexLom.IsMatch(nazevZbozi)) // specialni do vyberovek { druhZboziKod = "SPE"; artikl.InterniOznaceni_UserData = regexLom.Match(nazevZbozi).Value.Replace(@"\", "").ToUpper(); nazevZbozi = regexLom.Replace(nazevZbozi, "").FirstCharToUpper(); } else if (regexObal.IsMatch(nazevZbozi)) // obaly, palety { druhZboziKod = "OBA"; nazevZbozi = nazevZbozi.Replace("|", "").Trim().FirstCharToUpper(); artikl.NepodlehatSleveDokladu = "True"; } else if (regexZrus.IsMatch(nazevZbozi)) // zrusene zbozi { druhZboziKod = "ZRU"; nazevZbozi = nazevZbozi.Replace("|", "").Trim().FirstCharToUpper(); int aktualniRok = DateTime.Now.Year; var rokOdstranStr = "20" + nazevZbozi.Substring(0, 2); int rokOdstran = int.TryParse(rokOdstranStr, out int result) ? int.Parse(rokOdstranStr) : aktualniRok; if (rokOdstran < aktualniRok) { continue; } } artikl.Nazev = nazevZbozi; artikl.DruhArtiklu_ID = S0_IDs.GetDruhZboziID(druhZboziKod); var sazbaDPH = new enum_DruhSazbyDPH() { }; switch (d["SazbaD"].GetNum()) { case "21": sazbaDPH.Value = enum_DruhSazbyDPH_value.Item1; break; case "15": sazbaDPH.Value = enum_DruhSazbyDPH_value.Item0; break; case "0": sazbaDPH.Value = enum_DruhSazbyDPH_value.Item2; break; default: sazbaDPH.Value = enum_DruhSazbyDPH_value.Item2; break; } artikl.SazbyDPH = new S5DataArtiklSazbyDPH() { ArtiklDPH = new S5DataArtiklSazbyDPHArtiklDPH[] { new S5DataArtiklSazbyDPHArtiklDPH() { SazbaVstup = sazbaDPH, SazbaVystup = sazbaDPH, Zacatek = DateTime.Now.Date } } }; var mernaJednotka = d["MernaJednotka"].GetNoSpaces().RemoveDiacritics().ToLower(); var jednotkaID = S0_IDs.GetJednotkaID(mernaJednotka); artikl.SmazatOstatniJednotky = "True"; if (jednotkaID != null) { artikl.Jednotky = new S5DataArtiklJednotky() { HlavniJednotka = new S5DataArtiklJednotkyHlavniJednotka() { Jednotka_ID = jednotkaID, }, SeznamJednotek = new S5DataArtiklJednotkySeznamJednotek() { ArtiklJednotka = new S5DataArtiklJednotkySeznamJednotekArtiklJednotka[] { new S5DataArtiklJednotkySeznamJednotekArtiklJednotka() { Mnozstvi = "1", VychoziMnozstvi = "1", Jednotka_ID = jednotkaID, Kod = mernaJednotka, NedelitelneMnozstvi = d["MinFol"].GetBoolean() == "True" ? d["VFol"].GetNum() : null }, d["VFol"].GetNum() != "0" && d["VFol"].GetNum() != d["VKart"].GetNum() ? new S5DataArtiklJednotkySeznamJednotekArtiklJednotka() { Mnozstvi = "1", VychoziMnozstvi = d["VFol"].GetNum(), Jednotka_ID = S0_IDs.GetJednotkaID("fol"), Kod = "fol", ParentJednotka = new S5DataArtiklJednotkySeznamJednotekArtiklJednotkaParentJednotka() { Jednotka_ID = jednotkaID } } : null, d["VKart"].GetNum() != "0" ? new S5DataArtiklJednotkySeznamJednotekArtiklJednotka() { Mnozstvi = "1", VychoziMnozstvi = d["VKart"].GetNum(), Jednotka_ID = S0_IDs.GetJednotkaID("kar"), Kod = "kar", ParentJednotka = new S5DataArtiklJednotkySeznamJednotekArtiklJednotkaParentJednotka() { Jednotka_ID = jednotkaID }, } : null, d["VPal"].GetNum() != "0" ? new S5DataArtiklJednotkySeznamJednotekArtiklJednotka() { Mnozstvi = "1", VychoziMnozstvi = d["VPal"].GetNum(), Kod = "pal", Jednotka_ID = S0_IDs.GetJednotkaID("pal"), ParentJednotka = new S5DataArtiklJednotkySeznamJednotekArtiklJednotkaParentJednotka() { Jednotka_ID = jednotkaID } } : null, } } }; } var priznak = d["Priznak"].GetNoSpaces().ToUpper(); var priznakID = S0_IDs.GetProduktovyKlicID(priznak); var kodStr = d["KodZbozi"].GetNum(); var podkodStr = d["PodKodZbozi"].GetNum(); var webNezobrazovatExtra = d["Zobrazovat"].GetBooleanNegative(); var webNezobrazovat = kodStr == "" || kodStr == "0000" || podkodStr == "" || podkodStr == "0000" ? "True" : "False"; artikl.ProduktoveKlice = new S5DataArtiklProduktoveKlice() { DeleteItems = "1", ArtiklProduktovyKlic = new S5DataArtiklProduktoveKliceArtiklProduktovyKlic[] { priznakID != null ? new S5DataArtiklProduktoveKliceArtiklProduktovyKlic() { ProduktovyKlic_ID = priznakID, ProduktovyKlic = new S5DataArtiklProduktoveKliceArtiklProduktovyKlicProduktovyKlic() { ID = priznakID } } : null, webNezobrazovat == "True" ? new S5DataArtiklProduktoveKliceArtiklProduktovyKlic() { ProduktovyKlic_ID = S0_IDs.GetProduktovyKlicID("#"), ProduktovyKlic = new S5DataArtiklProduktoveKliceArtiklProduktovyKlicProduktovyKlic() { ID = S0_IDs.GetProduktovyKlicID("#") } } : null, webNezobrazovatExtra == "True" ? new S5DataArtiklProduktoveKliceArtiklProduktovyKlic() { ProduktovyKlic_ID = S0_IDs.GetProduktovyKlicID("@"), ProduktovyKlic = new S5DataArtiklProduktoveKliceArtiklProduktovyKlicProduktovyKlic() { ID = S0_IDs.GetProduktovyKlicID("@") } } : null, } }; if (priznak == "P") { // zbozi uvedene v priloze c. 5 - odpad a srot od roku 2012 (HADR 10kg) artikl.PreneseniDane = new S5DataArtiklPreneseniDane() { Kod = "5", PlatnostDo = new DateTime(9998, 12, 31) }; } artikl.Dodavatele = d["CisloDodavatele"].GetNum() != "00000" ? new S5DataArtiklDodavatele() { SeznamDodavatelu = new S5DataArtiklDodavateleSeznamDodavatelu() { DeleteItems = "1", ArtiklDodavatel = new S5DataArtiklDodavateleSeznamDodavateluArtiklDodavatel[] { new S5DataArtiklDodavateleSeznamDodavateluArtiklDodavatel() { DodavatelskeOznaceni = new S5DataArtiklDodavateleSeznamDodavateluArtiklDodavatelDodavatelskeOznaceni() { Kod = d["DodCislo"].GetAlfaNum() }, PosledniCena = d["NakupCena"].GetDecimal(), Firma = new S5DataArtiklDodavateleSeznamDodavateluArtiklDodavatelFirma() { Kod = S3_Adresar.GetDodID(d["CisloDodavatele"].GetNum()) }, Firma_ID = S3_Adresar.GetDodID(d["CisloDodavatele"].GetNum()) } } } } : null; var kod = _kategorie.Find(k => { return(k.Kod == d["KodZbozi"].GetNum()); }); var podkod = _kategorie.Find(k => { return(k.Kod == (d["KodZbozi"].GetNum() + d["PodKodZbozi"].GetNum())); }); if (kod != null && podkod != null) { artikl.Kategorie = string.Format( "{0}|{1}", kod.ID, podkod.ID ); } _artikly.Add(artikl); } }
private void convertPohybP(SkladDataFile headers, SkladDataFile rows) { Console.WriteLine("Zpracovávám " + headers.Soubor.ToString()); string id = ""; foreach (var header in headers.Data) { var data = header.Items; var doc = new S5DataSkladovyDoklad(); doc.Nazev = GetNazev(data["CisloPrijemky"].GetNum(), headers.Soubor); doc.ParovaciSymbol = GetID(data["CisloPrijemky"].GetNum(), headers.Soubor); doc.DatumSkladovehoPohybu = doc.DatumZauctovani = doc.DatumSchvaleni = doc.DatumVystaveni = data["DatumVydeje"].GetDate().AddHours(3); doc.DatumSkladovehoPohybuSpecified = doc.DatumZauctovaniSpecified = doc.DatumSchvaleniSpecified = doc.DatumVystaveniSpecified = true; doc.CasSkladovehoPohybu = data["DatumVydeje"].GetDate().AddHours(3); doc.CasSkladovehoPohybuSpecified = true; doc.Poznamka = data["Upozorneni"].GetText() + XmlEnv.NewLine + XmlEnv.NewLine + header.ToString(); string firmaID = S0_IDs.GetFirmaID(S3_Adresar.GetDodID(header.Items["CisloDodavatele"].GetNum())); doc.Firma_ID = doc.FakturacniAdresaFirma_ID = doc.PrijemceFaktury_ID = firmaID; doc.TypDokladu = prijemka; doc.ZapornyPohyb = "False"; if (header.GetCelkemFloat() < 0) { doc.ZapornyPohyb = "True"; } doc.Polozky = new S5DataSkladovyDokladPolozky(); _doklady.Add(doc); } int cisloPolozky = 0; string prevId = "", artiklID, skladID, katalog; Console.WriteLine("Zpracovávám " + rows.Soubor.ToString()); List <S5DataSkladovyDokladPolozkyPolozkaSkladovehoDokladu> polozky = null; enum_TypDokladu typDokladu = prijemka; S5DataSkladovyDoklad skladovyDoklad = null; foreach (var row in rows.Data) { var data = row.Items; id = GetID(data["CisloPrijemky"].GetNum(), headers.Soubor); katalog = S3_Katalog.GetID(data["CisloKarty"].GetNum()); skladovyDoklad = find(id); typDokladu = skladovyDoklad != null ? skladovyDoklad.TypDokladu : prijemka; if (prevId != id) { if (prevId != "") { addRows(polozky, prevId); } polozky = new List <S5DataSkladovyDokladPolozkyPolozkaSkladovehoDokladu>(); cisloPolozky = 0; prevId = id; } artiklID = S0_IDs.GetArtiklID(katalog); skladID = S0_IDs.GetSkladID("HL"); if (artiklID == null) { continue; } var pol = new S5DataSkladovyDokladPolozkyPolozkaSkladovehoDokladu(); pol.CisloPolozky = (++cisloPolozky).ToString(); pol.Mnozstvi = data["Prijato"].GetNum().Replace("-", ""); pol.JednCena = data["NakupCena"].GetDecimal().Replace("-", ""); pol.Vratka = "False"; if (data["Prijato"].GetNum().StartsWith("-")) { pol.Vratka = "True"; } if (skladovyDoklad.ZapornyPohyb == "True") { if (data["Prijato"].GetNum().StartsWith("-")) { pol.Vratka = "False"; } else { pol.Vratka = "True"; } } pol.Nazev = data["NazevZbozi"].GetText(); pol.JednotkovaPorizovaciCena = pol.JednCena; pol.JednCenaCM = pol.JednCena; pol.TypCeny = new enum_TypCeny() { Value = enum_TypCeny_value.Item0 }; pol.SazbaDPH_ID = S0_IDs.GetSazbaDPHID(data["SazbaD"].GetNum()); pol.TypObsahu = new enum_TypObsahuPolozky() { Value = enum_TypObsahuPolozky_value.Item1 }; pol.Vyrizeno = "True"; pol.ObsahPolozky = new S5DataSkladovyDokladPolozkyPolozkaSkladovehoDokladuObsahPolozky() { Artikl_ID = artiklID, Sklad_ID = skladID }; polozky.Add(pol); } addRows(polozky, id); }