private void convertZasoby(SkladDataFile file) { var skladID = S0_IDs.GetSkladID("HL"); string artiklID, katalog; foreach (SkladDataObj obj in file.Data) { var d = obj.Items; katalog = S3_Katalog.GetID(d["CisloKarty"].GetNum()); artiklID = S0_IDs.GetArtiklID(katalog); if (artiklID == null) { continue; } var zasoba = new S5DataZasoba() { Kod = katalog, Sklad_ID = skladID, Artikl_ID = artiklID }; _zasoby.Add(zasoba); } }
private void convertZaklCeny(SkladDataFile karty) { var skladID = S0_IDs.GetSkladID("HL"); foreach (var karta in karty.Data) { var d = karta.Items; var k = new S5DataPolozkaCeniku(); k.Cenik_ID = S0_IDs.GetCenikID("_PRODEJ"); k.Kod = "PROD" + d["CisloKarty"].GetNum(); k.Artikl_ID = S0_IDs.GetArtiklID(S3_Katalog.GetID(d["CisloKarty"].GetNum())); if (k.Artikl_ID == null) { continue; } k.Sklad_ID = skladID; k.CanGetDataFromGroup = "False"; k.NepodlehatSleveDokladu = "False"; k.VychoziCena = new S5DataPolozkaCenikuVychoziCena() { TypCeny = new enum_TypVychoziCeny() { Value = enum_TypVychoziCeny_value.Item0 } }; k.Cena = Math.Round(d["NakupCena"].GetFloat() + d["NakupCena"].GetFloat() / 100 * d["Rabat"].GetFloat(), 2).ToString().Replace(".", ","); _ceny.Add(k); } foreach (var karta in karty.Data) { var d = karta.Items; var k = new S5DataPolozkaCeniku(); k.Cenik_ID = S0_IDs.GetCenikID("_NAKUP"); k.Kod = "NAKUP" + d["CisloKarty"].GetNum(); k.Artikl_ID = S0_IDs.GetArtiklID(S3_Katalog.GetID(d["CisloKarty"].GetNum())); if (k.Artikl_ID == null) { continue; } k.Sklad_ID = skladID; k.CanGetDataFromGroup = "False"; k.NepodlehatSleveDokladu = "False"; k.VychoziCena = new S5DataPolozkaCenikuVychoziCena() { TypCeny = new enum_TypVychoziCeny() { Value = enum_TypVychoziCeny_value.Item0 } }; k.Cena = Math.Round(d["NakupCena"].GetFloat(), 2).ToString().Replace(".", ","); _ceny.Add(k); } }
private void convertCeny(SkladDataFile ceny) { var skladID = S0_IDs.GetSkladID("HL"); foreach (var cena in ceny.Data) { var d = cena.Items; var c = new S5DataPolozkaCeniku(); c.Cenik = new S5DataPolozkaCenikuCenik() { Kod = kodSkupKodCenik.GetValueOrDefault(d["CisloSkup"].GetNum()) }; c.Kod = d["CisloSkup"].GetNum() + d["CisloKarty"].GetNum(); c.Artikl_ID = S0_IDs.GetArtiklID(S3_Katalog.GetID(d["CisloKarty"].GetNum())); if (c.Artikl_ID == null) { continue; } c.Sklad_ID = skladID; c.Cena = d["SpecCena"].GetDecimal(); c.NepodlehatSleveDokladu = "True"; c.CanGetDataFromGroup = "False"; c.VychoziCena = new S5DataPolozkaCenikuVychoziCena() { TypCeny = new enum_TypVychoziCeny() { Value = enum_TypVychoziCeny_value.Item0 }, }; c.VypocetCeny = new S5DataPolozkaCenikuVypocetCeny() { ZpusobVypoctu = new enum_ZpusobVypoctuCeny() { Value = enum_ZpusobVypoctuCeny_value.Item0 } }; _ceny.Add(c); } }
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 convertPohybV(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["CisloVydejky"].GetNum(), headers.Soubor); doc.ParovaciSymbol = GetID(data["CisloVydejky"].GetNum(), headers.Soubor); doc.DatumSkladovehoPohybu = doc.DatumZauctovani = doc.DatumSchvaleni = doc.DatumVystaveni = data["DatumVydeje"].GetDate().AddHours(5); doc.DatumSkladovehoPohybuSpecified = doc.DatumZauctovaniSpecified = doc.DatumSchvaleniSpecified = doc.DatumVystaveniSpecified = true; doc.CasSkladovehoPohybu = data["DatumVydeje"].GetDate().AddHours(5); doc.CasSkladovehoPohybuSpecified = true; doc.Poznamka = data["Upozorneni"].GetText() + XmlEnv.NewLine + XmlEnv.NewLine + header.ToString(); doc.Polozky = new S5DataSkladovyDokladPolozky(); doc.ProcentniZisk = header.GetProcentniZisk(); string firmaID = S0_IDs.GetFirmaID(S3_Adresar.GetOdbID(header.Items["CisloOdberatele"].GetNum())); doc.Firma_ID = doc.FakturacniAdresaFirma_ID = doc.PrijemceFaktury_ID = firmaID; doc.TypDokladu = vydejka; doc.ZapornyPohyb = "False"; if (header.GetCelkemFloat() < 0) { doc.ZapornyPohyb = "True"; } _doklady.Add(doc); } Console.WriteLine("Zpracovávám " + rows.Soubor.ToString()); int cisloPolozky = 0; string prevId = "", artiklID, skladID, katalog; var polozky = new List <S5DataSkladovyDokladPolozkyPolozkaSkladovehoDokladu>(); enum_TypDokladu typDokladu = vydejka; S5DataSkladovyDoklad skladovyDoklad = null; foreach (var row in rows.Data) { var data = row.Items; id = GetID(data["CisloVydejky"].GetNum(), headers.Soubor); katalog = S3_Katalog.GetID(data["CisloKarty"].GetNum()); skladovyDoklad = find(id); typDokladu = skladovyDoklad != null ? skladovyDoklad.TypDokladu : vydejka; 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["Vydano"].GetNum().Replace("-", ""); pol.JednCena = data["ProdCena"].GetDecimal().Replace("-", ""); pol.Vratka = "False"; if (data["Vydano"].GetNum().StartsWith("-")) { pol.Vratka = "True"; } if (skladovyDoklad.ZapornyPohyb == "True") { if (data["Vydano"].GetNum().StartsWith("-")) { pol.Vratka = "False"; } else { pol.Vratka = "True"; } } pol.Nazev = data["NazevZbozi"].GetText(); pol.TypCeny = new enum_TypCeny() { Value = enum_TypCeny_value.Item0 }; pol.TypObsahu = new enum_TypObsahuPolozky() { Value = enum_TypObsahuPolozky_value.Item1 }; pol.SazbaDPH_ID = S0_IDs.GetSazbaDPHID(data["SazbaD"].GetNum()); pol.Vyrizeno = "True"; pol.ObsahPolozky = new S5DataSkladovyDokladPolozkyPolozkaSkladovehoDokladuObsahPolozky() { Artikl_ID = artiklID, Sklad_ID = skladID }; // na zaklade Zakazka_ID se budou filtrovat faktury (vynechaji se ty s cislem zakazky) pol.Zakazka_ID = data.ContainsKey("CisloZakazky") && data["CisloZakazky"].GetNum() != "00000" ? "True" : null; polozky.Add(pol); } addRows(polozky, id); }
private void convertKartyInv(SkladDataFile karty) { Console.WriteLine("Zpracovávám " + karty.Soubor.ToString()); var firstDay = new DateTime(DateTime.Now.Year, 1, 1); var doc = new S5DataSkladovyDoklad(); doc.Adresa = new S5DataSkladovyDokladAdresa() { Nazev = "Invetura zásob" }; doc.Nazev = GetNazev("00000", karty.Soubor); doc.ParovaciSymbol = GetID("00000", karty.Soubor); doc.Poznamka = "Inventura zásob, množství, kde bylo na 0, nastaveno na 1. K narovnání došlo dalším výdejem."; doc.DatumSkladovehoPohybu = doc.DatumZauctovani = doc.DatumSchvaleni = doc.DatumVystaveni = firstDay; doc.DatumSkladovehoPohybuSpecified = doc.DatumZauctovaniSpecified = doc.DatumSchvaleniSpecified = doc.DatumVystaveniSpecified = true; doc.CasSkladovehoPohybu = firstDay.AddHours(0); doc.CasSkladovehoPohybuSpecified = true; doc.Schvaleno = "True"; doc.TypDokladu = prijemka; int cisloPolozky = 0; var polozky = new List <S5DataSkladovyDokladPolozkyPolozkaSkladovehoDokladu>(); string artiklID, skladID, katalog; foreach (var row in karty.Data) { var data = row.Items; katalog = S3_Katalog.GetID(data["CisloKarty"].GetNum()); artiklID = S0_IDs.GetArtiklID(katalog); skladID = S0_IDs.GetSkladID("HL"); if (artiklID == null) { continue; } var pol = new S5DataSkladovyDokladPolozkyPolozkaSkladovehoDokladu(); pol.CisloPolozky = (++cisloPolozky).ToString(); pol.Vratka = "False"; pol.Mnozstvi = data["Pocet"].GetNum().Replace("-", ""); pol.JednCena = data["NakupCena"].GetDecimal().Replace("-", ""); if (data["Pocet"].GetNum().StartsWith("-")) { pol.Vratka = "True"; } if (pol.Mnozstvi == "0") { pol.Mnozstvi = "1"; } pol.TypObsahu = new enum_TypObsahuPolozky() { Value = enum_TypObsahuPolozky_value.Item1 }; pol.ObsahPolozky = new S5DataSkladovyDokladPolozkyPolozkaSkladovehoDokladuObsahPolozky() { Artikl_ID = artiklID, Sklad_ID = skladID }; pol.JednotkovaPorizovaciCena = pol.JednCena; pol.JednCenaCM = pol.JednCena; pol.Vyrizeno = "True"; polozky.Add(pol); } doc.Polozky = new S5DataSkladovyDokladPolozky() { PolozkaSkladovehoDokladu = polozky.ToArray() }; _doklady.Add(doc); // narovnani inventury, kde bylo k mnozstvi 0 prictena 1 // aby byla evidence o porizovacich cenach v money // "Inventura zasob" pokud je polozka 0, pricte 1 (prijemka) // "Invetura zásob - narovnání" pokud je polozka 0, vyda 1 (vydejka) doc = new S5DataSkladovyDoklad(); doc.Adresa = new S5DataSkladovyDokladAdresa() { Nazev = "Invetura zásob - narovnání" }; doc.Nazev = GetNazev("0000N", karty.Soubor); doc.ParovaciSymbol = GetID("0000N", karty.Soubor); doc.DatumSkladovehoPohybu = doc.DatumZauctovani = doc.DatumSchvaleni = doc.DatumVystaveni = firstDay; doc.DatumSkladovehoPohybuSpecified = doc.DatumZauctovaniSpecified = doc.DatumSchvaleniSpecified = doc.DatumVystaveniSpecified = true; doc.CasSkladovehoPohybu = firstDay.AddHours(1); doc.CasSkladovehoPohybuSpecified = true; doc.Schvaleno = "True"; doc.TypDokladu = vydejka; cisloPolozky = 0; polozky = new List <S5DataSkladovyDokladPolozkyPolozkaSkladovehoDokladu>(); foreach (var row in karty.Data) { var data = row.Items; katalog = S3_Katalog.GetID(data["CisloKarty"].GetNum()); 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["Pocet"].GetNum().Replace("-", ""); pol.JednCena = data["NakupCena"].GetDecimal().Replace("-", ""); if (pol.Mnozstvi == "0") { pol.Mnozstvi = "1"; } else { continue; } pol.TypObsahu = new enum_TypObsahuPolozky() { Value = enum_TypObsahuPolozky_value.Item1 }; pol.ObsahPolozky = new S5DataSkladovyDokladPolozkyPolozkaSkladovehoDokladuObsahPolozky() { Artikl_ID = artiklID, Sklad_ID = skladID }; pol.Vyrizeno = "True"; polozky.Add(pol); } doc.Polozky = new S5DataSkladovyDokladPolozky() { PolozkaSkladovehoDokladu = polozky.ToArray() }; _doklady.Add(doc); }