예제 #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 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);
            }
        }
예제 #3
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);
            }
        }
예제 #4
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);
            }
        }
예제 #5
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);
        }
예제 #6
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);
        }