예제 #1
0
        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);
            }
        }
예제 #2
0
        private void convertPodKod(SkladDataFile file)
        {
            string podkategorie, podkategorieID;

            foreach (SkladDataObj obj in file.Data)
            {
                var d = obj.Items;

                podkategorie   = d["KodZbozi"].GetNum() + d["PodKodZbozi"].GetNum();
                podkategorieID = S0_IDs.GetKategorieArtikluID(podkategorie);
                if (podkategorieID == null)
                {
                    podkategorieID = Guid.NewGuid().ToString();
                }

                var cat = new S5DataKategorieArtiklu()
                {
                    ID              = podkategorieID,
                    Kod             = podkategorie,
                    Nazev           = d["NazevPOdKodu"].GetText(),
                    Poradi_UserData = d["PodPoradi"].GetAlfaNum(),
                    ParentObject_ID = _kategorie.Find((a) => { return(a.Kod == d["KodZbozi"].GetNum()); }).ID
                };
                _kategorie.Add(cat);
            }
        }
예제 #3
0
 public S7_Dopl(string dir, Encoding enc)
 {
     kodSumFile = new SkladDataFile(dir, SFile.KODSUMFA, enc);
     kodOdbFile = new SkladDataFile(dir, SFile.KODODB, enc);
     odbFile    = new SkladDataFile(dir, SFile.ODB, enc);
     convertOdb(odbFile);
     convertDod(new SkladDataFile(dir, SFile.DOD, enc));
     convertKarty(new SkladDataFile(dir, SFile.KARTY, enc));
 }
예제 #4
0
        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);
            }
        }
예제 #5
0
        private void convertOdbCeniky(SkladDataFile firmy)
        {
            foreach (var f in firmy.Data)
            {
                var data = f.Items;

                if (data["CisloSkup"].GetNum() != "0000")
                {
                    var firma         = new S5DataFirma();
                    var firmaID       = S0_IDs.GetFirmaID(S3_Adresar.GetOdbID(data["CisloOdberatele"].GetNum()));
                    var prodejCenikID = S0_IDs.GetCenikID("_PRODEJ");
                    var nakupCenikID  = S0_IDs.GetCenikID("_NAKUP");
                    var akceCenikID   = S0_IDs.GetCenikID("_AKCE");

                    firma.ID = firmaID;
                    firma.ObchodniPodminky = new S5DataFirmaObchodniPodminky()
                    {
                        ZpusobVyberuCeny = new enum_ZpusobVyberuCeny()
                        {
                            // vyber ceny dle podle poradi
                            Value = enum_ZpusobVyberuCeny_value.Item2
                        },
                        SeznamCeniku = new S5DataFirmaObchodniPodminkySeznamCeniku()
                        {
                            DeleteItems = "1",
                            FirmaCenik  = new S5DataFirmaObchodniPodminkySeznamCenikuFirmaCenik[] {
                                new S5DataFirmaObchodniPodminkySeznamCenikuFirmaCenik()
                                {
                                    Poradi   = "1",
                                    Firma_ID = firmaID,
                                    Cenik    = new S5DataFirmaObchodniPodminkySeznamCenikuFirmaCenikCenik()
                                    {
                                        Kod = kodSkupKodCenik.GetValueOrDefault(data["CisloSkup"].GetNum())
                                    }
                                },
                                data["RabatO"].GetFloat() >= 0  ? new S5DataFirmaObchodniPodminkySeznamCenikuFirmaCenik()
                                {
                                    Poradi   = "2",
                                    Firma_ID = firmaID,
                                    Cenik_ID = akceCenikID
                                } : null,
                                new S5DataFirmaObchodniPodminkySeznamCenikuFirmaCenik()
                                {
                                    Poradi   = "3",
                                    Firma_ID = firmaID,
                                    Cenik_ID = prodejCenikID
                                },
                            }
                        }
                    };
                    _firmy.Add(firma);
                }
            }
        }
예제 #6
0
        private void convertCeniky(SkladDataFile skupiny)
        {
            var skladID = S0_IDs.GetSkladID("HL");

            foreach (var skupina in skupiny.Data)
            {
                var    data       = skupina.Items;
                var    cenik      = new S5DataCenik();
                string cenikNazev = data["NazevSkup"].GetText() != "" ? data["NazevSkup"].GetText() : "Neznámý";
                cenik.Kod             = GetKod(cenikNazev);
                cenik.Nazev           = cenikNazev;
                cenik.VychoziSklad_ID = skladID;
                _ceniky.Add(cenik);
                kodSkupKodCenik.Add(data["CisloSkup"].GetNum(), cenik.Kod);
            }
        }
예제 #7
0
        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);
            }
        }
예제 #8
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);
            }
        }
예제 #9
0
        private void convertKod(SkladDataFile file)
        {
            string kategorie, kategorieID;

            foreach (SkladDataObj obj in file.Data)
            {
                var d = obj.Items;
                kategorie   = d["KodZbozi"].GetNum();
                kategorieID = S0_IDs.GetKategorieArtikluID(kategorie);
                if (kategorieID == null)
                {
                    kategorieID = Guid.NewGuid().ToString();
                }

                var cat = new S5DataKategorieArtiklu()
                {
                    ID              = kategorieID,
                    Kod             = kategorie,
                    Nazev           = d["NazevKodu"].GetText(),
                    Poradi_UserData = d["Poradi"].GetAlfaNum()
                };
                _kategorie.Add(cat);
            }
        }
예제 #10
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);
            }
        }
예제 #11
0
        private void convertOdb(SkladDataFile file)
        {
            var statID = S0_IDs.GetStatID("CZ");

            foreach (SkladDataObj obj in file.Data)
            {
                var d = obj.Items;

                string kodOdb    = d["CisloOdberatele"].GetNum();
                string kod       = GetOdbID(kodOdb);
                bool   jeOstatni = d["NazevOdberatele"].GetText().StartsWith("\\");

                if (kod == GetOdbID("00001"))
                {
                    continue;
                }
                if (d["NazevOdberatele"].GetText().StartsWith("||"))
                {
                    continue;
                }

                var firma = new S5DataFirma()
                {
                    Kod    = kod,
                    Nazev  = SkladDataObj.GetNazev(d["NazevOdberatele"], d["NazevOdberatele2"]),
                    ICO    = obj.GetIco(),
                    DIC    = obj.GetDic(),
                    Zprava = obj.GetF3Note().Replace("\n", "\n\n"),
                    PoznamkaInterni_UserData        = obj.GetL2Note(),
                    DatumPorizeni_UserData          = d["DatumPorizeni"].GetDate(),
                    DatumPorizeni_UserDataSpecified = true,
                    KodOdb_UserData   = d["KodOdb"].GetAlfaNum(),
                    KodSumFa_UserData = d["KodSumFa"].GetAlfaNum()
                };

                firma.Pohledavky = new S5DataFirmaPohledavky()
                {
                    SplatnostPohledavek        = d["Splatnost"].GetNum(),
                    VlastniSplatnostPohledavek = d["Splatnost"].GetFloat() == 0 ? "False" : "True"
                };
                firma.PlatceDPH = firma.DIC == null ? "False" : "True";
                firma.EvidovatNahradniPlneni = d["NahradniPlneni"].GetBoolean();

                // v programu Odber FA: A/N, Money: Pouzivat kredit: true + Kredit: 0 = nepovolí prodej na FA
                firma.Kredit = new S5DataFirmaKredit()
                {
                    Kredit         = "0",
                    PouzivatKredit = d["KupniSmlouva"].GetBooleanNegative()
                };
                firma.Sleva = new S5DataFirmaSleva()
                {
                    Sleva        = (firma.Group != null && jeOstatni) ? "0" : d["RabatO"].GetDecimal(),
                    VlastniSleva = (firma.Group != null && jeOstatni) ? "False" : "True"
                };
                firma.SlevaUvadena_UserData = d["PRabatO"].GetDecimal();

                var akceCenikID   = S0_IDs.GetCenikID("_AKCE");
                var prodejCenikID = S0_IDs.GetCenikID("_PRODEJ");
                var nakupCenikID  = S0_IDs.GetCenikID("_NAKUP");

                if (jeOstatni)
                {
                    firma.Sleva = new S5DataFirmaSleva()
                    {
                        Sleva        = "0",
                        VlastniSleva = "False"
                    };
                    firma.ObchodniPodminky = new S5DataFirmaObchodniPodminky()
                    {
                        ZpusobVyberuCeny = new enum_ZpusobVyberuCeny()
                        {
                            Value = enum_ZpusobVyberuCeny_value.Item2 // zpusob prebirani ceny poradi
                        },
                        SeznamCeniku = new S5DataFirmaObchodniPodminkySeznamCeniku()
                        {
                            DeleteItems = "1",
                            FirmaCenik  = new S5DataFirmaObchodniPodminkySeznamCenikuFirmaCenik[] {
                                new S5DataFirmaObchodniPodminkySeznamCenikuFirmaCenik()
                                {
                                    Poradi   = "1",
                                    Cenik_ID = nakupCenikID
                                },
                                new S5DataFirmaObchodniPodminkySeznamCenikuFirmaCenik()
                                {
                                    Poradi   = "2",
                                    Cenik_ID = prodejCenikID
                                }
                            }
                        }
                    };
                }
                else
                {
                    firma.ObchodniPodminky = new S5DataFirmaObchodniPodminky()
                    {
                        ZpusobVyberuCeny = new enum_ZpusobVyberuCeny()
                        {
                            Value = enum_ZpusobVyberuCeny_value.Item2 // zpusob prebirani ceny poradi
                        },
                        SeznamCeniku = new S5DataFirmaObchodniPodminkySeznamCeniku()
                        {
                            DeleteItems = "1",
                            FirmaCenik  = new S5DataFirmaObchodniPodminkySeznamCenikuFirmaCenik[] {
                                d["RabatO"].GetFloat() >= 0 ? new S5DataFirmaObchodniPodminkySeznamCenikuFirmaCenik()
                                {
                                    Poradi   = "1",
                                    Cenik_ID = akceCenikID
                                } : null,
                                new S5DataFirmaObchodniPodminkySeznamCenikuFirmaCenik()
                                {
                                    Poradi   = "2",
                                    Cenik_ID = prodejCenikID
                                },
                            }
                        }
                    };
                }

                firma.AdresniKlice = new S5DataFirmaAdresniKlice()
                {
                    DeleteItems      = "1",
                    FirmaAdresniKlic = new S5DataFirmaAdresniKliceFirmaAdresniKlic[] {
                        d["SDani"].GetAlfaNum().ToUpper() == "A" ? new S5DataFirmaAdresniKliceFirmaAdresniKlic()
                        {
                            AdresniKlic_ID = S0_IDs.GetAdresniKlicID("sDPH")
                        } : null,
                        d["SDani"].GetAlfaNum().ToUpper() == "X" ? new S5DataFirmaAdresniKliceFirmaAdresniKlic()
                        {
                            AdresniKlic_ID = S0_IDs.GetAdresniKlicID("-DLCENY")
                        } : null,
                        d["DavatSek"].GetAlfaNum().ToUpper() == "N" ? new S5DataFirmaAdresniKliceFirmaAdresniKlic()
                        {
                            AdresniKlic_ID = S0_IDs.GetAdresniKlicID("-SEK")
                        } : null,
                        d["Odesilat"].GetAlfaNum().ToUpper() == "N" ? new S5DataFirmaAdresniKliceFirmaAdresniKlic()
                        {
                            AdresniKlic_ID = S0_IDs.GetAdresniKlicID("-LETAK")
                        } : null,
                        d["KodOdb"].GetAlfaNum().ToUpper() == "OZ" ? new S5DataFirmaAdresniKliceFirmaAdresniKlic()
                        {
                            AdresniKlic_ID = S0_IDs.GetAdresniKlicID("OZ")
                        } : null,
                        d["KodOdb"].GetAlfaNum().ToUpper() == "OZN" ? new S5DataFirmaAdresniKliceFirmaAdresniKlic()
                        {
                            AdresniKlic_ID = S0_IDs.GetAdresniKlicID("OZN")
                        } : null,
                        int.Parse(kodOdb) > 7000 ? new S5DataFirmaAdresniKliceFirmaAdresniKlic()
                        {
                            AdresniKlic_ID = S0_IDs.GetAdresniKlicID("INT")
                        } : null,
                        jeOstatni ? new S5DataFirmaAdresniKliceFirmaAdresniKlic()
                        {
                            AdresniKlic_ID = S0_IDs.GetAdresniKlicID("OST")
                        } : null,
                    }
                };

                var tels     = SkladDataObj.GetTelefony(d["Telefon"]);
                var emails   = SkladDataObj.GetEmaily(d["Mail"]);
                var emailsFA = SkladDataObj.GetEmaily(d["MailFA"]);

                firma.SeznamSpojeni = new S5DataFirmaSeznamSpojeni()
                {
                    DeleteItems = "1",
                    Spojeni     = new S5DataFirmaSeznamSpojeniSpojeni[] {
                        tels.Item1 != null ? new S5DataFirmaSeznamSpojeniSpojeni()
                        {
                            TypSpojeni_ID = S0_IDs.GetTypSpojeniID("TelPreb"),
                            SpojeniCislo  = tels.Item1,
                            Kod_UserData  = S7_Dopl.GetKodTelefon0(kod),
                            Popis         = d["Prebirajici"].GetText()
                        } : null,
                        tels.Item2 != null ? new S5DataFirmaSeznamSpojeniSpojeni()
                        {
                            TypSpojeni_ID = S0_IDs.GetTypSpojeniID("TelPreb"),
                            SpojeniCislo  = tels.Item2,
                            Kod_UserData  = S7_Dopl.GetKodTelefon1(kod),
                            Popis         = d["Prebirajici"].GetText()
                        } : null,
                        emails.Item1 != null ? new S5DataFirmaSeznamSpojeniSpojeni()
                        {
                            TypSpojeni_ID = S0_IDs.GetTypSpojeniID("EmailObj"),
                            SpojeniCislo  = emails.Item1,
                            Kod_UserData  = S7_Dopl.GetKodEmail1(kod),
                            Popis         = d["Prebirajici"].GetText()
                        } : null,
                        emails.Item2 != null ? new S5DataFirmaSeznamSpojeniSpojeni()
                        {
                            TypSpojeni_ID = S0_IDs.GetTypSpojeniID("EmailObj"),
                            SpojeniCislo  = emails.Item2,
                            Kod_UserData  = S7_Dopl.GetKodEmail2(kod)
                        } : null,
                        !SkladDataObj.jePodobne(d["Zastoupeny"].GetText(), d["Prebirajici"].GetText()) ? new S5DataFirmaSeznamSpojeniSpojeni()
                        {
                            TypSpojeni_ID = S0_IDs.GetTypSpojeniID("TelVed"),
                            SpojeniCislo  = "",
                            Kod_UserData  = S7_Dopl.GetKodTelefon2(kod),
                            Popis         = d["Zastoupeny"].GetText()
                        } : null,
                        emailsFA.Item1 != null ? new S5DataFirmaSeznamSpojeniSpojeni()
                        {
                            TypSpojeni_ID = S0_IDs.GetTypSpojeniID("EmailFa"),
                            SpojeniCislo  = emailsFA.Item1,
                            Kod_UserData  = S7_Dopl.GetKodEmailFA1(kod)
                        } : null,
                        emailsFA.Item2 != null ? new S5DataFirmaSeznamSpojeniSpojeni()
                        {
                            TypSpojeni_ID = S0_IDs.GetTypSpojeniID("EmailFa"),
                            SpojeniCislo  = emailsFA.Item2,
                            Kod_UserData  = S7_Dopl.GetKodEmailFA2(kod)
                        } : null,
                        tels.Item1 == null && tels.Item2 == null ? new S5DataFirmaSeznamSpojeniSpojeni()
                        {
                            TypSpojeni_ID = S0_IDs.GetTypSpojeniID("TelPreb"),
                            SpojeniCislo  = "#",
                            Kod_UserData  = S7_Dopl.GetKodTelefon0(kod),
                            Popis         = "<Neznamy>"
                        } : null
                    }
                };

                var isPrijemce = !(d["UlicePrijemce"].IsEmpty() && d["MestoPrijemce"].IsEmpty() && d["NazevPrijemce"].IsEmpty());

                firma.Adresy = new S5DataFirmaAdresy()
                {
                    ObchodniAdresa = new S5DataFirmaAdresyObchodniAdresa()
                    {
                        Nazev  = SkladDataObj.GetNazev(d["NazevOdberatele"], d["NazevOdberatele2"]),
                        Ulice  = d["Ulice"].GetText(),
                        KodPsc = d["Psc"].GetNum(),
                        Misto  = d["Mesto"].GetText(),
                        Stat   = new S5DataFirmaAdresyObchodniAdresaStat()
                        {
                            ID = statID
                        }
                    },
                    Provozovna = isPrijemce ? new S5DataFirmaAdresyProvozovna()
                    {
                        Nazev  = SkladDataObj.GetNazev(d["NazevPrijemce"], d["NazevPrijemce2"]),
                        Ulice  = d["UlicePrijemce"].GetText(),
                        KodPsc = d["PscPrijemce"].GetNum(),
                        Misto  = d["MestoPrijemce"].GetText(),
                        Stat   = new S5DataFirmaAdresyProvozovnaStat()
                        {
                            ID = statID
                        }
                    } : null,
                    OdlisnaAdresaProvozovny = isPrijemce ? "True" : "False"
                };

                _firmy.Add(firma);
            }
        }
예제 #12
0
        private void convertDod(SkladDataFile file)
        {
            var statID = S0_IDs.GetStatID("CZ");

            foreach (SkladDataObj obj in file.Data)
            {
                var d   = obj.Items;
                var kod = GetDodID(d["CisloDodavatele"].GetNum());

                var firma = new S5DataFirma()
                {
                    Kod   = kod,
                    Nazev = SkladDataObj.GetNazev(d["NazevDodavatele"], d["NazevDodavatele2"]),
                    ICO   = obj.GetIco(),
                    DIC   = obj.GetDic(),
                    DatumPorizeni_UserData          = d["DatumPorizeni"].GetDate(),
                    DatumPorizeni_UserDataSpecified = true,
                    Sleva = new S5DataFirmaSleva()
                    {
                        Sleva        = "0",
                        VlastniSleva = "False"
                    }
                };

                firma.Poznamka = (
                    d["ZavozDen"].GetText() == "" ? "" :
                    "Závozový den: " + d["ZavozDen"].GetText() + XmlEnv.NewLine + XmlEnv.NewLine
                    ) + obj.GetF3Note() + XmlEnv.NewLine + obj.GetL2Note();

                var tels     = SkladDataObj.GetTelefony(d["Telefon"]);
                var telsOZ   = SkladDataObj.GetTelefony(d["TelefonOz"]);
                var emails   = SkladDataObj.GetEmaily(d["Mail"]);
                var emailsOZ = SkladDataObj.GetEmaily(d["MailOZ"]);

                firma.SeznamSpojeni = new S5DataFirmaSeznamSpojeni()
                {
                    DeleteItems = "1",
                    Spojeni     = new S5DataFirmaSeznamSpojeniSpojeni[] {
                        tels.Item1 != null ? new S5DataFirmaSeznamSpojeniSpojeni()
                        {
                            TypSpojeni_ID = S0_IDs.GetTypSpojeniID("TelObj"),
                            SpojeniCislo  = tels.Item1,
                            Kod_UserData  = S7_Dopl.GetKodTelefon0(kod),
                            Popis         = d["Zastoupeny"].GetText()
                        } : null,
                        emails.Item1 != null ? new S5DataFirmaSeznamSpojeniSpojeni()
                        {
                            TypSpojeni_ID = S0_IDs.GetTypSpojeniID("EmailObj"),
                            SpojeniCislo  = emails.Item1,
                            Kod_UserData  = S7_Dopl.GetKodEmail1(kod),
                            Popis         = d["Zastoupeny"].GetText()
                        } : null,
                        tels.Item2 != null ? new S5DataFirmaSeznamSpojeniSpojeni()
                        {
                            TypSpojeni_ID = S0_IDs.GetTypSpojeniID("TelObj"),
                            SpojeniCislo  = tels.Item2,
                            Kod_UserData  = S7_Dopl.GetKodTelefon1(kod),
                            Popis         = d["Zastoupeny"].GetText()
                        } : null,
                        telsOZ.Item1 != null ? new S5DataFirmaSeznamSpojeniSpojeni()
                        {
                            TypSpojeni_ID = S0_IDs.GetTypSpojeniID("TelOz"),
                            SpojeniCislo  = tels.Item1,
                            Kod_UserData  = S7_Dopl.GetKodTelefon2(kod),
                            Popis         = d["ZastoupenyOZ"].GetText()
                        } : null,
                        telsOZ.Item2 != null ? new S5DataFirmaSeznamSpojeniSpojeni()
                        {
                            TypSpojeni_ID = S0_IDs.GetTypSpojeniID("TelOz"),
                            SpojeniCislo  = telsOZ.Item2,
                            Kod_UserData  = S7_Dopl.GetKodTelefon3(kod),
                            Popis         = d["ZastoupenyOZ"].GetText()
                        } : null,
                        emailsOZ.Item1 != null ? new S5DataFirmaSeznamSpojeniSpojeni()
                        {
                            TypSpojeni_ID = S0_IDs.GetTypSpojeniID("EmailOz"),
                            SpojeniCislo  = emailsOZ.Item1,
                            Kod_UserData  = S7_Dopl.GetKodEmailFA1(kod),
                            Popis         = d["ZastoupenyOZ"].GetText()
                        } : null,
                        emails.Item2 != null ? new S5DataFirmaSeznamSpojeniSpojeni()
                        {
                            TypSpojeni_ID = S0_IDs.GetTypSpojeniID("Email"),
                            SpojeniCislo  = emails.Item2,
                            Kod_UserData  = S7_Dopl.GetKodEmail2(kod)
                        } : null,
                        emailsOZ.Item2 != null ? new S5DataFirmaSeznamSpojeniSpojeni()
                        {
                            TypSpojeni_ID = S0_IDs.GetTypSpojeniID("EmailOz"),
                            SpojeniCislo  = emailsOZ.Item2,
                            Kod_UserData  = S7_Dopl.GetKodEmailFA2(kod)
                        } : null,
                        tels.Item1 == null && tels.Item2 == null ? new S5DataFirmaSeznamSpojeniSpojeni()
                        {
                            TypSpojeni_ID = S0_IDs.GetTypSpojeniID("Tel"),
                            SpojeniCislo  = "#",
                            Kod_UserData  = S7_Dopl.GetKodTelefon0(kod),
                            Popis         = "<Neznamy>"
                        } : null
                    }
                };

                firma.Adresy = new S5DataFirmaAdresy()
                {
                    ObchodniAdresa = new S5DataFirmaAdresyObchodniAdresa()
                    {
                        Nazev  = SkladDataObj.GetNazev(d["NazevDodavatele"], d["NazevDodavatele2"]),
                        Ulice  = d["Ulice"].GetText(),
                        KodPsc = d["Psc"].GetNum(),
                        Misto  = d["Mesto"].GetText(),
                        Stat   = new S5DataFirmaAdresyObchodniAdresaStat()
                        {
                            ID = statID
                        }
                    }
                };

                var akceCenikID   = S0_IDs.GetCenikID("_AKCE");
                var prodejCenikID = S0_IDs.GetCenikID("_PRODEJ");

                firma.ObchodniPodminky = new S5DataFirmaObchodniPodminky()
                {
                    ZpusobVyberuCeny = new enum_ZpusobVyberuCeny()
                    {
                        Value = enum_ZpusobVyberuCeny_value.Item3 // zpusob prebirani ceny poradim
                    },
                    SeznamCeniku = new S5DataFirmaObchodniPodminkySeznamCeniku()
                    {
                        DeleteItems = "1",
                        FirmaCenik  = new S5DataFirmaObchodniPodminkySeznamCenikuFirmaCenik[] {
                            new S5DataFirmaObchodniPodminkySeznamCenikuFirmaCenik()
                            {
                                Poradi   = "1",
                                Cenik_ID = akceCenikID
                            },
                            new S5DataFirmaObchodniPodminkySeznamCenikuFirmaCenik()
                            {
                                Poradi   = "2",
                                Cenik_ID = prodejCenikID
                            },
                        }
                    }
                };

                _firmy.Add(firma);
            }
        }
예제 #13
0
        private void convertOdb(SkladDataFile file)
        {
            var statID = S0_IDs.GetStatID("CZ");

            foreach (SkladDataObj obj in file.Data)
            {
                var    d   = obj.Items;
                string kod = S3_Adresar.GetOdbID(d["CisloOdberatele"].GetNum());
                if (kod == S3_Adresar.GetOdbID("00001"))
                {
                    continue;
                }

                string kodSumFa = d["KodSumFa"].GetAlfaNum();
                string kodOdb   = d["KodOdb"].GetAlfaNum();

                var firma = new S5DataFirma()
                {
                };
                firma.ID = S0_IDs.GetFirmaID(kod);

                if (firma.ID == null)
                {
                    continue;
                }

                string tel1ID     = S0_IDs.GetSpojeniID(GetKodTelefon0(kod));
                string tel1copyID = S0_IDs.GetSpojeniID(GetKodTelefon1(kod));
                string email1ID   = S0_IDs.GetSpojeniID(GetKodEmail1(kod));

                if (kodSumFa == "dr")
                {
                    firma.Cinnosti = new S5DataFirmaCinnosti()
                    {
                        FirmaCinnost = new S5DataFirmaCinnostiFirmaCinnost[] {
                            new S5DataFirmaCinnostiFirmaCinnost()
                            {
                                Cinnost_ID = S0_IDs.GetCinnostID("DRAK")
                            }
                        }
                    };
                }
                else
                {
                    if (d["SumFa"].GetBoolean() == "True")
                    {
                        firma.Cinnosti = new S5DataFirmaCinnosti()
                        {
                            FirmaCinnost = new S5DataFirmaCinnostiFirmaCinnost[] {
                                new S5DataFirmaCinnostiFirmaCinnost()
                                {
                                    Cinnost_ID = S0_IDs.GetCinnostID("S_FA")
                                }
                            }
                        };
                    }

                    var  cisloOdbKodSumFa  = S3_Adresar.GetOdbID(findKodOdbKodSum(kodSumFa));
                    var  nadrazenaFirmaObj = findOdbByKod(cisloOdbKodSumFa);
                    var  nadrazenaFirmaID  = S0_IDs.GetFirmaID(cisloOdbKodSumFa);
                    bool isKodSumFa        = true;

                    if (nadrazenaFirmaID == null)
                    {
                        var cisloOdbKodOdb = S3_Adresar.GetOdbID(findKodOdbKodOdb(kodOdb));
                        nadrazenaFirmaObj = findOdbByKod(cisloOdbKodOdb);
                        nadrazenaFirmaID  = S0_IDs.GetFirmaID(cisloOdbKodOdb);
                        isKodSumFa        = false;
                    }

                    if (firma.ID != nadrazenaFirmaID && nadrazenaFirmaID != null)
                    {
                        firma.Adresy = new S5DataFirmaAdresy()
                        {
                            OdlisnaAdresaProvozovny = "True",
                            ObchodniAdresa          = new S5DataFirmaAdresyObchodniAdresa()
                            {
                                Nazev  = SkladDataObj.GetNazev(nadrazenaFirmaObj.Items["NazevOdberatele"], nadrazenaFirmaObj.Items["NazevOdberatele2"]),
                                Ulice  = nadrazenaFirmaObj.Items["Ulice"].GetText(),
                                KodPsc = nadrazenaFirmaObj.Items["Psc"].GetNum(),
                                Misto  = nadrazenaFirmaObj.Items["Mesto"].GetText(),
                                Stat   = new S5DataFirmaAdresyObchodniAdresaStat()
                                {
                                    ID = statID
                                }
                            }
                        };

                        firma.Nazev = SkladDataObj.GetNazev(nadrazenaFirmaObj.Items["NazevOdberatele"], nadrazenaFirmaObj.Items["NazevOdberatele2"]);

                        firma.NadrazenaFirma = new S5DataFirmaNadrazenaFirma()
                        {
                            PrevzitObchodniPodminky = isKodSumFa ? "True" : "False",
                            PrevzitObchodniUdaje    = "True",
                            PrevzitBankovniSpojeni  = "True",
                            Firma = new S5DataFirmaNadrazenaFirmaFirma()
                            {
                                ID = nadrazenaFirmaID
                            }
                        };

                        if (email1ID == null)
                        {
                            var emails = SkladDataObj.GetEmaily(nadrazenaFirmaObj.Items["Mail"]);
                            if (firma.SeznamSpojeni == null)
                            {
                                firma.SeznamSpojeni = new S5DataFirmaSeznamSpojeni()
                                {
                                    Spojeni = new S5DataFirmaSeznamSpojeniSpojeni[] {
                                        new S5DataFirmaSeznamSpojeniSpojeni()
                                        {
                                            TypSpojeni_ID = S0_IDs.GetTypSpojeniID("Email"),
                                            SpojeniCislo  = emails.Item1,
                                            Kod_UserData  = S7_Dopl.GetKodEmail1(kod),
                                            Popis         = "z nadřazené firmy"
                                        }
                                    }
                                }
                            }
                            ;
                        }
                    }
                }

                _firmy.Add(firma);
            }
        }
예제 #14
0
 private void convertDod(SkladDataFile file)
 {
 }
예제 #15
0
        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);
        }
예제 #16
0
        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);
        }