Example #1
0
        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);
            }
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
        }