예제 #1
0
파일: _220B_LAGER.cs 프로젝트: Yoze/WebCene
        private void GenerisiPodatkeZaPrikaz(KonfigDobavljaca konfigDobavljaca, LoadedXmlDocument ucitaniXmlDocument)
        {
            List <B2B_Results_RowItem> podaciZaPrikaz = new List <B2B_Results_RowItem>();

            extNS._220BLager.Root _220BLager = new Root();


            var serializer = new XmlSerializer(typeof(extNS._220BLager.Root));

            using (XmlReader reader = new XmlNodeReader(ucitaniXmlDocument.LoadedXmlDocumentItem))
            {
                _220BLager = (Root)serializer.Deserialize(reader);
            }


            foreach (var item in _220BLager.Row)
            {
                if (ModelHelper.Instance.IsValidBarcode(item.barcode.ToString().TrimEnd()))
                {
                    B2B_Results_RowItem podatakZaPrikaz = new B2B_Results_RowItem()
                    {
                        Barcode           = item.barcode.ToString().TrimEnd(),
                        Kolicina          = item.kolicina,
                        NNC               = 0, // postoji cenovnik
                        PMC               = 0, // postoji cenonvnik
                        DatumUlistavanja  = DateTime.Today,
                        PrimarniDobavljac = konfigDobavljaca.Naziv,
                        LagerDatum        = ucitaniXmlDocument.XmlLastModified
                    };
                    podaciZaPrikaz.Add(podatakZaPrikaz);
                }
            }
            b2B_Results_RowItems = podaciZaPrikaz;
        }
예제 #2
0
        private void GenerisiPodatkeZaPrikaz(KonfigDobavljaca konfigDobavljaca, LoadedXmlDocument ucitaniXmlDocument)
        {
            List <B2B_Results_RowItem> podaciZaPrikaz = new List <B2B_Results_RowItem>();

            Dokument mkaCenovnik = new Dokument();


            var serializer = new XmlSerializer(typeof(extNS.mkaCenovnik.Dokument));

            using (XmlReader reader = new XmlNodeReader(ucitaniXmlDocument.LoadedXmlDocumentItem))
            {
                mkaCenovnik = (Dokument)serializer.Deserialize(reader);
            }


            foreach (var item in mkaCenovnik.Stavke)
            {
                if (ModelHelper.Instance.IsValidBarcode(item.BarKod.ToString().TrimEnd()))
                {
                    B2B_Results_RowItem podatakZaPrikaz = new B2B_Results_RowItem()
                    {
                        Barcode           = item.BarKod.ToString().TrimEnd(),
                        Kolicina          = (int)item.Kolicina,
                        NNC               = ModelHelper.Instance.CalculateNNC(Convert.ToDouble(item.CenaVP), konfigDobavljaca),
                        PMC               = Convert.ToDouble(item.CenaMP),
                        DatumUlistavanja  = DateTime.Today,
                        PrimarniDobavljac = konfigDobavljaca.Naziv,
                        CenovnikDatum     = ucitaniXmlDocument.XmlLastModified,
                        LagerDatum        = ucitaniXmlDocument.XmlLastModified
                    };
                    podaciZaPrikaz.Add(podatakZaPrikaz);
                }
            }
            b2B_Results_RowItems = podaciZaPrikaz;
        }
예제 #3
0
파일: DBHelper.cs 프로젝트: Yoze/WebCene
        public KonfigDobavljaca GetSingleSupplierConfigurationByName(string supplierName)
        {
            KonfigDobavljaca konfiguracijaDobavljaca = new KonfigDobavljaca();

            if (string.IsNullOrEmpty(supplierName))
            {
                return(null);
            }

            try
            {
                using (KrolerContext db = new KrolerContext())
                {
                    konfiguracijaDobavljaca = db.KonfigDobavljaca
                                              .Where(d => d.Naziv.Equals(supplierName))
                                              .FirstOrDefault();
                }
            }
            catch (Exception e)
            {
                throw new Exception("Greška: GetKonfigDobavljaca()\r\n" + e.Message);
            }

            return(konfiguracijaDobavljaca);
        }
예제 #4
0
        private void GenerisiPodatkeZaPrikaz(KonfigDobavljaca konfigDobavljaca, LoadedXmlDocument ucitaniXmlDocument)
        {
            List <B2B_Results_RowItem> podaciZaPrikaz = new List <B2B_Results_RowItem>();

            extNS.ewe.products ewe = new extNS.ewe.products();
            var serializer         = new XmlSerializer(typeof(extNS.ewe.products));

            using (XmlReader reader = new XmlNodeReader(ucitaniXmlDocument.LoadedXmlDocumentItem))
            {
                ewe = (extNS.ewe.products)serializer.Deserialize(reader);
            }

            foreach (var item in ewe.product)
            {
                if (ModelHelper.Instance.IsValidBarcode(item.ean))
                {
                    /*
                     * 4. EWE
                     *      - price_rebate (NNC)
                     *      - recommended_retail_price ->
                     *
                     *              if (recommended_retail_price) PMC == recommended_retail_price
                     *              else {
                     *                      PMC = price_rebate *1.2 * profile.koefMarze;
                     *              }
                     *      Ewe.koefMarze = 1.1;
                     */

                    //  Kolicina - xml ne sadrži podatke o količini, podrazumeva se da su u xml-u izlistani samo artikli koji su raspoloživi
                    int kolicina = 1;

                    // NNC
                    bool isCena = double.TryParse(item.price_rebate, System.Globalization.NumberStyles.Any, new CultureInfo("en-US"), out double nnc);
                    if (!konfigDobavljaca.Manualno)
                    {
                        nnc = ModelHelper.Instance.CalculateNNC(nnc, konfigDobavljaca);
                    }

                    // PMC
                    bool isPmc = double.TryParse(item.recommended_retail_price, out double pmc);
                    //pmc = ( isPmc && pmc > 0 ) ? pmc : nnc * decimal.Multiply( 1.2m, konfigDobavljaca.KeoficijentMarze );


                    B2B_Results_RowItem podatakZaPrikaz = new B2B_Results_RowItem()
                    {
                        Barcode           = item.ean,
                        Kolicina          = kolicina,
                        NNC               = nnc,
                        PMC               = 0, //TO DO: kalkulacija PMC
                        DatumUlistavanja  = DateTime.Now,
                        PrimarniDobavljac = konfigDobavljaca.Naziv,
                        CenovnikDatum     = DateTime.Now,
                        LagerDatum        = DateTime.Now
                    };
                    podaciZaPrikaz.Add(podatakZaPrikaz);
                }
            }
            b2B_Results_RowItems = podaciZaPrikaz;
        }
예제 #5
0
        private void GenerisiPodatkeZaPrikaz(KonfigDobavljaca konfigDobavljaca, LoadedXmlDocument ucitaniXmlDocument)
        {
            List <B2B_Results_RowItem> podaciZaPrikaz = new List <B2B_Results_RowItem>();

            extNS.comtrade.ArrayOfCTPRODUCT comtrade = new extNS.comtrade.ArrayOfCTPRODUCT();
            var serializer = new XmlSerializer(typeof(extNS.comtrade.ArrayOfCTPRODUCT));

            using (XmlReader reader = new XmlNodeReader(ucitaniXmlDocument.LoadedXmlDocumentItem))
            {
                comtrade = (extNS.comtrade.ArrayOfCTPRODUCT)serializer.Deserialize(reader);
            }

            double kursEvra = 1;

            foreach (var item in comtrade.CTPRODUCT)
            {
                if (ModelHelper.Instance.IsValidBarcode(item.BARCODE.ToString()))
                {
                    bool isNnc = double.TryParse(item.PRICE, out double nnc);

                    bool isPmc = double.TryParse(item.RETAILPRICE, out double pmc);

                    bool isExchangeRate = double.TryParse(item.EUR_ExchangeRate, out double exchangeRate);

                    if (isExchangeRate && kursEvra != exchangeRate)
                    {
                        kursEvra = exchangeRate;
                    }

                    if (!konfigDobavljaca.Manualno)
                    {
                        nnc = ModelHelper.Instance.CalculateNNC(nnc, konfigDobavljaca);
                    }

                    B2B_Results_RowItem podatakZaPrikaz = new B2B_Results_RowItem()
                    {
                        Barcode           = item.BARCODE.ToString().TrimEnd(),
                        Kolicina          = item.QTTYINSTOCK,
                        NNC               = nnc,
                        PMC               = pmc,
                        DatumUlistavanja  = DateTime.Today,
                        PrimarniDobavljac = konfigDobavljaca.Naziv,
                        CenovnikDatum     = ucitaniXmlDocument.XmlLastModified,
                        LagerDatum        = ucitaniXmlDocument.XmlLastModified
                    };
                    podaciZaPrikaz.Add(podatakZaPrikaz);
                }
            }
            b2B_Results_RowItems = podaciZaPrikaz;

            // postavi kurs evra za dobavljača:
            konfigDobavljaca.KursEvra = kursEvra;
            if (!ModelHelper.Instance.SaveSupplierConfigs(konfigDobavljaca))
            {
                throw new Exception($"Kurs evra za {konfigDobavljaca.Naziv} nije snimljen!");
            }
        }
예제 #6
0
        public frmMarzeRabatiDobavljaca(KonfigDobavljaca konfigDobavljaca)
        {
            /** Dodavanje novog rabata i marže */

            InitializeComponent();

            // sprečava implicitnu validaciju kontrole kada izgubi fokus
            AutoValidate = System.Windows.Forms.AutoValidate.Disable;

            KonfigDobavljacaProp     = konfigDobavljaca;
            MarzaDobavljacaRabatProp = null;
        }
예제 #7
0
파일: FTPHelper.cs 프로젝트: Yoze/WebCene
        public string CreateRequestUri(KonfigDobavljaca konfigDobavljaca, string fileName)
        {
            // requestUriString = URL + CenovnikFilename / LagerFilename

            string requestUriString = string.Empty;

            if (konfigDobavljaca != null)
            {
                requestUriString = konfigDobavljaca.URL + "/" + fileName;
            }

            return(requestUriString);
        }
예제 #8
0
        public frmKonfigDobavljaca(KonfigDobavljaca _konfigDobavljaca)
        {
            InitializeComponent();

            if (_konfigDobavljaca != null)
            {
                KonfigDobavljacaProp = _konfigDobavljaca;
                MapPropsToControls();
            }
            else
            {
                KonfigDobavljacaProp = null;
            }
        }
예제 #9
0
파일: ModelHelper.cs 프로젝트: Yoze/WebCene
        public double CalculateNNC(double unnc, KonfigDobavljaca konfigDobavljaca)
        {
            double calculatedNNC = 0;
            double kursEvra      = konfigDobavljaca.KursEvra;
            double rabat         = 1 - (konfigDobavljaca.RabatProc / 100);
            string _stopaPdv     = ConfigurationManager.AppSettings["stopaPDV"];

            if (double.TryParse(_stopaPdv, out double koefPDV))
            {
                koefPDV = 1 + (koefPDV / 100);
            }

            calculatedNNC = Convert.ToDouble(unnc * rabat * koefPDV * kursEvra);
            return(calculatedNNC);
        }
예제 #10
0
        private void GenerisiPodatkeZaPrikaz(KonfigDobavljaca konfigDobavljaca, LoadedXmlDocument ucitaniXmlDocument)
        {
            List <B2B_Results_RowItem> podaciZaPrikaz = new List <B2B_Results_RowItem>();

            extNS.bosch.izdelki bosch = new extNS.bosch.izdelki();
            var serializer            = new XmlSerializer(typeof(extNS.bosch.izdelki));

            using (XmlReader reader = new XmlNodeReader(ucitaniXmlDocument.LoadedXmlDocumentItem))
            {
                bosch = (izdelki)serializer.Deserialize(reader);
            }

            foreach (var item in bosch.izdelek)
            {
                if (ModelHelper.Instance.IsValidBarcode(item.ean.ToString()))
                {
                    /**
                     * cena     -> Vaša nabavna cena.
                     * ppc      -> Tako zvana cena za trgovaca. Cena koja je osnova za rabate. Nadam se da imate mogućnost koristiti ovo
                     * zaloga   -> Lager; stanje zalihe.
                     * davek    -> % poreza.
                     */

                    bool isnabavnaCena = double.TryParse(item.cena, out double nabavnaCena);

                    bool isPpc = double.TryParse(item.ppc, out double ppc);

                    if (!konfigDobavljaca.Manualno)
                    {
                        ppc = ModelHelper.Instance.CalculateNNC(ppc, konfigDobavljaca);
                    }

                    B2B_Results_RowItem podatakZaPrikaz = new B2B_Results_RowItem()
                    {
                        Barcode           = item.ean.ToString().TrimEnd(),
                        Kolicina          = item.zaloga,
                        NNC               = ppc,
                        PMC               = 0, //TO DO: kalkulacija PMC
                        DatumUlistavanja  = DateTime.Today,
                        PrimarniDobavljac = konfigDobavljaca.Naziv,
                        CenovnikDatum     = ucitaniXmlDocument.XmlLastModified,
                        LagerDatum        = ucitaniXmlDocument.XmlLastModified
                    };
                    podaciZaPrikaz.Add(podatakZaPrikaz);
                }
            }
            b2B_Results_RowItems = podaciZaPrikaz;
        }
예제 #11
0
        public frmMarzeRabatiDobavljaca(KonfigDobavljaca konfigDobavljaca, int idOdabraneMarze)
        {
            /** Izmena postojećeg rabata i marže */

            InitializeComponent();

            IdOdabraneMarze = idOdabraneMarze;

            KonfigDobavljacaProp = konfigDobavljaca;

            MarzaDobavljacaRabatProp = new MarzeDobavljaca();
            MarzaDobavljacaRabatProp = DBHelper.Instance.GetSingleSupplierMarginByMarginId(idOdabraneMarze);

            if (MarzaDobavljacaRabatProp == null)
            {
                MessageBox.Show("Info", "Odaberi podatak za izmenu.");
            }
            MapPropsToControls();
        }
예제 #12
0
        private void GenerisiPodatkeZaPrikaz(KonfigDobavljaca konfigDobavljaca, LoadedXmlDocument ucitaniXmlDocument)
        {
            List <B2B_Results_RowItem> podaciZaPrikaz = new List <B2B_Results_RowItem>();

            extNS.erg.ITEMS erg        = new extNS.erg.ITEMS();
            var             serializer = new XmlSerializer(typeof(extNS.erg.ITEMS));

            using (XmlReader reader = new XmlNodeReader(ucitaniXmlDocument.LoadedXmlDocumentItem))
            {
                erg = (ITEMS)serializer.Deserialize(reader);
            }

            foreach (var item in erg.ITEM)
            {
                if (ModelHelper.Instance.IsValidBarcode(item.barcode))
                {
                    // NNC
                    double nnc = Convert.ToDouble(item.price);
                    if (!konfigDobavljaca.Manualno)
                    {
                        nnc = ModelHelper.Instance.CalculateNNC(nnc, konfigDobavljaca);
                    }


                    //int kolicina = 0;
                    bool isKolicina = Int32.TryParse(item.stock, out int kolicina);

                    B2B_Results_RowItem podatakZaPrikaz = new B2B_Results_RowItem()
                    {
                        Barcode           = item.barcode.TrimEnd(),
                        Kolicina          = kolicina,
                        NNC               = nnc,
                        PMC               = 0, //TO DO: kalkulacija PMC
                        DatumUlistavanja  = DateTime.Today,
                        PrimarniDobavljac = konfigDobavljaca.Naziv,
                        CenovnikDatum     = ucitaniXmlDocument.XmlLastModified,
                        LagerDatum        = ucitaniXmlDocument.XmlLastModified
                    };
                    podaciZaPrikaz.Add(podatakZaPrikaz);
                }
            }
            b2B_Results_RowItems = podaciZaPrikaz;
        }
예제 #13
0
        private void GenerisiPodatkeZaPrikaz(KonfigDobavljaca konfigDobavljaca, LoadedXmlDocument ucitaniXmlDocument)
        {
            List <B2B_Results_RowItem> podaciZaPrikaz = new List <B2B_Results_RowItem>();

            extNS.gorenje.Root gorenjeCenovnik = new Root();


            var serializer = new XmlSerializer(typeof(extNS.gorenje.Root));

            using (XmlReader reader = new XmlNodeReader(ucitaniXmlDocument.LoadedXmlDocumentItem))
            {
                gorenjeCenovnik = (Root)serializer.Deserialize(reader);
            }

            foreach (var item in gorenjeCenovnik.Row)
            {
                if (ModelHelper.Instance.IsValidBarcode(item.barcode.ToString()))
                {
                    // Količina = 0, postoji xml sa lagerom
                    int kolicina = 0;

                    // NNC
                    double nnc = Convert.ToDouble(item.NNC);
                    if (!konfigDobavljaca.Manualno)
                    {
                        nnc = ModelHelper.Instance.CalculateNNC(nnc, konfigDobavljaca);
                    }

                    B2B_Results_RowItem podatakZaPrikaz = new B2B_Results_RowItem()
                    {
                        Barcode           = item.barcode.ToString().TrimEnd(),
                        Kolicina          = kolicina,
                        NNC               = nnc,
                        PMC               = item.PMC,
                        DatumUlistavanja  = DateTime.Today,
                        PrimarniDobavljac = konfigDobavljaca.Naziv,
                        CenovnikDatum     = ucitaniXmlDocument.XmlLastModified
                    };
                    podaciZaPrikaz.Add(podatakZaPrikaz);
                }
            }
            b2B_Results_RowItems = podaciZaPrikaz;
        }
예제 #14
0
        private void GenerisiPodatkeZaPrikaz(KonfigDobavljaca konfigDobavljaca, LoadedXmlDocument ucitaniXmlDocument)
        {
            List <B2B_Results_RowItem> podaciZaPrikaz = new List <B2B_Results_RowItem>();

            extNS.alcaLager.Root alcaLager = new Root();


            var serializer = new XmlSerializer(typeof(extNS.alcaLager.Root));

            using (XmlReader reader = new XmlNodeReader(ucitaniXmlDocument.LoadedXmlDocumentItem))
            {
                alcaLager = (Root)serializer.Deserialize(reader);
            }


            foreach (var item in alcaLager.Row)
            {
                if (ModelHelper.Instance.IsValidBarcode(item.barcode.ToString().TrimEnd()))
                {
                    // NNC - nije potrebna, učitava se samo lager
                    //double nnc = Convert.ToDouble(item.NNC);
                    //if (!konfigDobavljaca.Manualno)
                    //{
                    //    nnc = ModelHelper.Instance.CalculateNNC(nnc, konfigDobavljaca);
                    //}

                    B2B_Results_RowItem podatakZaPrikaz = new B2B_Results_RowItem()
                    {
                        Barcode           = item.barcode.ToString().TrimEnd(),
                        Kolicina          = item.kolicina,
                        NNC               = 0,
                        PMC               = 0,
                        DatumUlistavanja  = DateTime.Today,
                        PrimarniDobavljac = konfigDobavljaca.Naziv,
                        CenovnikDatum     = ucitaniXmlDocument.XmlLastModified,
                        LagerDatum        = ucitaniXmlDocument.XmlLastModified
                    };
                    podaciZaPrikaz.Add(podatakZaPrikaz);
                }
            }
            b2B_Results_RowItems = podaciZaPrikaz;
        }
예제 #15
0
        private void GenerisiPodatkeZaPrikaz(KonfigDobavljaca konfigDobavljaca, LoadedXmlDocument ucitaniXmlDocument)
        {
            List <B2B_Results_RowItem> podaciZaPrikaz = new List <B2B_Results_RowItem>();

            extNS.orbico.Items orbicoCenovnik = new Items();


            var serializer = new XmlSerializer(typeof(extNS.orbico.Items));

            using (XmlReader reader = new XmlNodeReader(ucitaniXmlDocument.LoadedXmlDocumentItem))
            {
                orbicoCenovnik = (Items)serializer.Deserialize(reader);
            }


            foreach (var item in orbicoCenovnik.Item)
            {
                if (ModelHelper.Instance.IsValidBarcode(item.ean.ToString().TrimEnd()))
                {
                    // NNC
                    bool isPrice = double.TryParse(item.price, out double nnc);
                    if (!konfigDobavljaca.Manualno)
                    {
                        nnc = ModelHelper.Instance.CalculateNNC(nnc, konfigDobavljaca);
                    }

                    B2B_Results_RowItem podatakZaPrikaz = new B2B_Results_RowItem()
                    {
                        Barcode           = item.ean.ToString().TrimEnd(),
                        Kolicina          = item.qty,
                        NNC               = nnc,
                        PMC               = 0, //TO DO: kalkulacija PMC
                        DatumUlistavanja  = DateTime.Now,
                        PrimarniDobavljac = konfigDobavljaca.Naziv,
                        CenovnikDatum     = ucitaniXmlDocument.XmlLastModified,
                        LagerDatum        = ucitaniXmlDocument.XmlLastModified
                    };
                    podaciZaPrikaz.Add(podatakZaPrikaz);
                }
            }
            b2B_Results_RowItems = podaciZaPrikaz;
        }
예제 #16
0
파일: DBHelper.cs 프로젝트: Yoze/WebCene
        /** dbo.KonfigDobavljaca */
        public KonfigDobavljaca GetSingleSupplierConfigurationById(int supplierId)
        {
            KonfigDobavljaca konfiguracijaDobavljaca = new KonfigDobavljaca();

            try
            {
                using (KrolerContext db = new KrolerContext())
                {
                    konfiguracijaDobavljaca = db.KonfigDobavljaca
                                              .Where(d => d.Id == supplierId)
                                              .FirstOrDefault();
                }
            }
            catch (Exception e)
            {
                throw new Exception("Greška: GetKonfigDobavljaca()\r\n" + e.Message);
            }

            return(konfiguracijaDobavljaca);
        }
예제 #17
0
        private void GenerisiPodatkeZaPrikaz(KonfigDobavljaca konfigDobavljaca, LoadedXmlDocument ucitaniXmlDocument)
        {
            List <B2B_Results_RowItem> podaciZaPrikaz = new List <B2B_Results_RowItem>();

            extNS.AlfaPlamCenovnik.Root alfaPlamCenovnik = new Root();


            var serializer = new XmlSerializer(typeof(extNS.AlfaPlamCenovnik.Root));

            using (XmlReader reader = new XmlNodeReader(ucitaniXmlDocument.LoadedXmlDocumentItem))
            {
                alfaPlamCenovnik = (Root)serializer.Deserialize(reader);
            }


            foreach (var item in alfaPlamCenovnik.Row)
            {
                if (ModelHelper.Instance.IsValidBarcode(item.BARCODE.ToString().TrimEnd()))
                {
                    double nnc = item.NNC;
                    if (!konfigDobavljaca.Manualno)
                    {
                        nnc = ModelHelper.Instance.CalculateNNC(nnc, konfigDobavljaca);
                    }

                    B2B_Results_RowItem podatakZaPrikaz = new B2B_Results_RowItem()
                    {
                        Barcode           = item.BARCODE.ToString().TrimEnd(),
                        Kolicina          = item.KOLICINA,
                        NNC               = nnc,
                        PMC               = item.PMC,
                        DatumUlistavanja  = DateTime.Today,
                        PrimarniDobavljac = konfigDobavljaca.Naziv,
                        CenovnikDatum     = ucitaniXmlDocument.XmlLastModified,
                        LagerDatum        = ucitaniXmlDocument.XmlLastModified
                    };
                    podaciZaPrikaz.Add(podatakZaPrikaz);
                }
            }
            b2B_Results_RowItems = podaciZaPrikaz;
        }
예제 #18
0
파일: DBHelper.cs 프로젝트: Yoze/WebCene
        public bool SaveSupplierConfigs(KonfigDobavljaca konfigDobavljaca)
        {
            if (konfigDobavljaca != null)
            {
                using (KrolerContext db = new KrolerContext())
                {
                    try
                    {
                        db.Entry(konfigDobavljaca).State = System.Data.Entity.EntityState.Modified;
                        db.SaveChanges();

                        return(true);
                    }
                    catch (Exception)
                    {
                        return(false);
                    }
                }
            }
            return(false);
        }
예제 #19
0
파일: HTTPSHelper.cs 프로젝트: Yoze/WebCene
        public LoadedXmlDocument LoadXmlDocWithHttpRequest(KonfigDobavljaca konfigDobavljaca)
        {
            // xml document u koji se deserijalizuju učitani podaci
            XmlDocument xmlDocument = new XmlDocument();

            // model u koji se smeštaju deserijaliovani xml document i ostali detalji transfera
            LoadedXmlDocument loadedXmlDocFromHttpRequest = new LoadedXmlDocument();

            // http putanja sa koje se učitavaju podaci
            var xmlPath = konfigDobavljaca.URL;


            // Get XML from http request
            try
            {
                using (WebClient webClient = new WebClient())
                {
                    // download xml-a kao stringa
                    string downloadResult;
                    downloadResult = webClient.DownloadString(xmlPath);

                    // rezultat učitavanja strema reader-a
                    string readerResults = string.Empty;

                    try
                    {
                        using (Stream stream = webClient.OpenRead(xmlPath))
                        {
                            using (StreamReader reader = new StreamReader(stream))
                            {
                                readerResults = reader.ReadToEnd();

                                xmlDocument.LoadXml(readerResults);

                                // loaded xml document
                                loadedXmlDocFromHttpRequest.LoadedXmlDocumentItem.LoadXml(readerResults);

                                // last modifid date is set to current date
                                loadedXmlDocFromHttpRequest.XmlLastModified = DateTime.Now.Date;


                                // Status Description is set to Loaded if loaded xml has child nodes
                                if (loadedXmlDocFromHttpRequest.LoadedXmlDocumentItem.HasChildNodes)
                                {
                                    loadedXmlDocFromHttpRequest.StatusDescription = "Transfer completed.";
                                }

                                return(loadedXmlDocFromHttpRequest);
                            }
                        }
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
            }
            catch (WebException ex)
            {
                var statusCode = ((HttpWebResponse)ex.Response).StatusCode;

                loadedXmlDocFromHttpRequest.StatusDescription = statusCode.ToString();
                return(loadedXmlDocFromHttpRequest);
            }
        }
예제 #20
0
        //XMLHelper()
        //{
        //    // initialize here
        //}



        public List <B2B_Results_RowItem> GetB2B_Results_RowItems_PerSupplier(KonfigDobavljaca konfigDobavljaca)
        {
            // učitavanje xml podataka za dobavljača

            List <B2B_Results_RowItem> b2B_Results_RowItems = new List <B2B_Results_RowItem>();


            switch (konfigDobavljaca.WebProtokol.TrimEnd().ToLower())
            {
            case "ftp":
            {
                LoadedXmlDocument supplierXmlDocument = new LoadedXmlDocument();

                // Cenovnik
                List <B2B_Results_RowItem> priceList = null;
                if (!(string.IsNullOrWhiteSpace(konfigDobavljaca.ModelCenovnik)))
                {
                    priceList = new List <B2B_Results_RowItem>();

                    supplierXmlDocument = FTPHelper.Instance.LoadXmlDocumentForSupplier(konfigDobavljaca, konfigDobavljaca.CenovnikFilename);

                    // ovo koristi glavna forma da bi imali Status Description u statusima
                    StatusDescription = supplierXmlDocument.StatusDescription;

                    priceList = XMLHelper.Instance.GetB2B_ResultsFromXmlDocument(konfigDobavljaca, konfigDobavljaca.ModelCenovnik, supplierXmlDocument);

                    b2B_Results_RowItems = priceList;
                }


                // Lager
                List <B2B_Results_RowItem> stockList = null;
                if (!(string.IsNullOrWhiteSpace(konfigDobavljaca.ModelLager)))
                {
                    stockList = new List <B2B_Results_RowItem>();
                    LoadedXmlDocument loadedStockList = new LoadedXmlDocument();

                    loadedStockList = FTPHelper.Instance.LoadXmlDocumentForSupplier(konfigDobavljaca, konfigDobavljaca.LagerFilename);

                    // ovo koristi glavna forma da bi imali Status Description u statusima
                    StatusDescription = loadedStockList.StatusDescription;

                    stockList = XMLHelper.Instance.GetB2B_ResultsFromXmlDocument(konfigDobavljaca, konfigDobavljaca.ModelLager, loadedStockList);
                }

                // Povezivanje Cenovnika sa lagerom u jedinstvenu listu
                if (priceList != null && stockList != null)
                {
                    b2B_Results_RowItems = MergePriceListAndStockList(priceList, stockList);
                }

                return(b2B_Results_RowItems);
            }


            case "http":
            {
                LoadedXmlDocument supplierXmlDocument = new LoadedXmlDocument();

                // Cenovnik i lager
                List <B2B_Results_RowItem> priceList = new List <B2B_Results_RowItem>();

                supplierXmlDocument = HTTPSHelper.Instance.LoadXmlDocWithHttpRequest(konfigDobavljaca);

                // ovo koristi glavna forma da bi imali Status Description u statusima
                StatusDescription = supplierXmlDocument.StatusDescription;

                priceList            = Instance.GetB2B_ResultsFromXmlDocument(konfigDobavljaca, konfigDobavljaca.ModelCenovnik, supplierXmlDocument);
                b2B_Results_RowItems = priceList;

                return(b2B_Results_RowItems);
            }


            case "webservice":
            {
                switch (konfigDobavljaca.ModelCenovnik)
                {
                case "PIN_CENOVNIK":
                {
                    /** PIN CLient */
                    StockWebserviceClient pinServiceClient = new StockWebserviceClient("StockWebservicePort");

                    UInt32 password = 0;
                    try
                    {
                        password = Convert.ToUInt32(konfigDobavljaca.Password);
                    }
                    catch (Exception e)
                    {
                        throw new Exception("Greška u parametru za pristup servisu!\r\n" + e.Message);
                    }

                    //b2BWebServiceDAO pinResults = pinServiceClient.getAllItems("c794398a-732c-4d5e-b6a4-783eb1a268c0", 4, false); // proveriti zasto true param izbacuje error !
                    b2BWebServiceDAO pinResults = pinServiceClient.getAllItems(konfigDobavljaca.Username, password, false);                 // proveriti zasto true param izbacuje error !
                    pinServiceClient.Close();

                    /** PIN Items*/
                    List <item> pinItems = pinResults.item.ToList();

                    if (pinItems.Count != 0)
                    {
                        for (int i = 0; i < pinItems.Count; i++)
                        {
                            if (ModelHelper.Instance.IsValidBarcode(pinItems[i].ean))
                            {
                                B2B_Results_RowItem xmlRezultat = new B2B_Results_RowItem()
                                {
                                    Barcode           = pinItems[i].ean,
                                    Kolicina          = (int)pinItems[i].stock,
                                    NNC               = pinItems[i].price_with_discounts,
                                    PMC               = pinItems[i].retail_price,
                                    DatumUlistavanja  = DateTime.Now,
                                    PrimarniDobavljac = konfigDobavljaca.Naziv,
                                    CenovnikDatum     = DateTime.Now,
                                    LagerDatum        = DateTime.Now
                                };
                                b2B_Results_RowItems.Add(xmlRezultat);
                            }
                        }
                        return(b2B_Results_RowItems);
                    }
                }
                break;

                case "COMTRADE":
                {
                    // Napravljen je poseban utility koji se nalazi na elbraco cloud-u.
                    // Ovaj utility preuzima podatke sa CT B2B i kopira generisani xml fajl na Elbraco Ftp
                    // u folder 'ftp://ftp.elbraco.rs/elcomtradeCenovnik'
                }
                break;

                default:
                    break;
                }
            }
            break;

            default:
                break;
            }
            return(b2B_Results_RowItems);
        }
예제 #21
0
파일: _220B_LAGER.cs 프로젝트: Yoze/WebCene
        public _220B_LAGER(KonfigDobavljaca konfigDobavljaca, LoadedXmlDocument ucitaniXmlDocument)
        {
            b2B_Results_RowItems = new List <B2B_Results_RowItem>();

            GenerisiPodatkeZaPrikaz(konfigDobavljaca, ucitaniXmlDocument);
        }
예제 #22
0
        public List <B2B_Results_RowItem> GetB2B_ResultsFromXmlDocument(KonfigDobavljaca konfigDobavljaca, string model, LoadedXmlDocument ucitaniXmlDocument)
        {
            /** Dodavanje xml u jedinstvenu listu rezultata učitanih sa FTP  */

            List <B2B_Results_RowItem> b2B_Results_RowItems = new List <B2B_Results_RowItem>();

            switch (model)
            {
            case "EWE_CENOVNIK":
                extNS.ewe.EWE_CENOVNIK eweCenovnik = new extNS.ewe.EWE_CENOVNIK(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = eweCenovnik.b2B_Results_RowItems);

            case "ERG_CENOVNIK":
                extNS.erg.ERG_CENOVNIK ergCenovnik = new extNS.erg.ERG_CENOVNIK(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = ergCenovnik.b2B_Results_RowItems);

            case "ZOMIMPEX_CENOVNIK":
                extNS.zomimpex.ZOMIMPEX_CENOVNIK zomCenovnik = new extNS.zomimpex.ZOMIMPEX_CENOVNIK(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = zomCenovnik.b2B_Results_RowItems);

            case "BOSCH_CENOVNIK":
                extNS.bosch.BOSCH_CENOVNIK boschCenovnik = new extNS.bosch.BOSCH_CENOVNIK(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = boschCenovnik.b2B_Results_RowItems);

            case "GORENJE_CENOVNIK":
                extNS.gorenje.GORENJE_CENOVNIK gorenjeCenovnik = new extNS.gorenje.GORENJE_CENOVNIK(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = gorenjeCenovnik.b2B_Results_RowItems);

            case "GORENJE_LAGER":
                extNS.gorenjeLager.GORENJE_LAGER gorenjeLager = new extNS.gorenjeLager.GORENJE_LAGER(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = gorenjeLager.b2B_Results_RowItems);

            case "ALFAPLAM_CENOVNIK":
                extNS.AlfaPlamCenovnik.ALFAPLAM_CENOVNIK alfaPlamCenovnik = new extNS.AlfaPlamCenovnik.ALFAPLAM_CENOVNIK(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = alfaPlamCenovnik.b2B_Results_RowItems);

            case "MBS_CENOVNIK":
                extNS.MbsCenovnik.MBS_CENOVNIK mbsCenovnik = new extNS.MbsCenovnik.MBS_CENOVNIK(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = mbsCenovnik.b2B_Results_RowItems);

            case "ACRMOBILE_CENOVNIK":
                extNS.acrmobile.ACRMOBILE_CENOVNIK acrMobileCenovnik = new extNS.acrmobile.ACRMOBILE_CENOVNIK(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = acrMobileCenovnik.b2B_Results_RowItems);

            case "ALCA_CENOVNIK":
                extNS.alca.ALCA_CENOVNIK alcaCenovnik = new extNS.alca.ALCA_CENOVNIK(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = alcaCenovnik.b2B_Results_RowItems);

            case "ALCA_LAGER":
                extNS.alcaLager.ALCA_LAGER alcaLager = new extNS.alcaLager.ALCA_LAGER(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = alcaLager.b2B_Results_RowItems);

            case "CANDY_CENOVNIK":
                extNS.candy.CANDY_CENOVNIK candyCenovnik = new extNS.candy.CANDY_CENOVNIK(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = candyCenovnik.b2B_Results_RowItems);

            case "CANDY_LAGER":
                extNS.candyLager.CANDY_LAGER candyLager = new extNS.candyLager.CANDY_LAGER(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = candyLager.b2B_Results_RowItems);

            case "220B_CENOVNIK":
                extNS._220BCenovnik._220B_CENOVNIK _220BCenovnik = new extNS._220BCenovnik._220B_CENOVNIK(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = _220BCenovnik.b2B_Results_RowItems);

            case "220B_LAGER":
                extNS._220BLager._220B_LAGER _220BLager = new extNS._220BLager._220B_LAGER(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = _220BLager.b2B_Results_RowItems);

            case "MKA_CENOVNIK":
                extNS.mkaCenovnik.MKA_CENOVNIK mkaCenovnik = new extNS.mkaCenovnik.MKA_CENOVNIK(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = mkaCenovnik.b2B_Results_RowItems);

            case "MISON_CENOVNIK":
                extNS.mison.MISON_CENOVNIK misonCenovnik = new extNS.mison.MISON_CENOVNIK(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = misonCenovnik.b2B_Results_RowItems);

            case "MISON_LAGER":
                extNS.misonLager.MISON_LAGER misonLager = new extNS.misonLager.MISON_LAGER(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = misonLager.b2B_Results_RowItems);

            case "HUAWEI_CENOVNIK":
                extNS.huawei.HUAWEI_CENOVNIK huaweiCenovnik = new extNS.huawei.HUAWEI_CENOVNIK(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = huaweiCenovnik.b2B_Results_RowItems);

            case "ROAMING_CENOVNIK":
                extNS.roaming.ROAMING_CENOVNIK roamingCenovnik = new extNS.roaming.ROAMING_CENOVNIK(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = roamingCenovnik.b2B_Results_RowItems);

            case "TANDEM_CENOVNIK":
                extNS.tandem.TANDEM_CENOVNIK tandemCenovnik = new extNS.tandem.TANDEM_CENOVNIK(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = tandemCenovnik.b2B_Results_RowItems);

            case "TANDEM_LAGER":
                extNS.tandemLager.TANDEM_LAGER tandemLager = new extNS.tandemLager.TANDEM_LAGER(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = tandemLager.b2B_Results_RowItems);

            case "WHIRLPOOL_CENOVNIK":
                extNS.whirlpoolCenovnik.WHIRLPOOL_CENOVNIK whirlpoolCenovnik = new extNS.whirlpoolCenovnik.WHIRLPOOL_CENOVNIK(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = whirlpoolCenovnik.b2B_Results_RowItems);

            case "WHIRLPOOL_LAGER":
                extNS.whirlpoolLager.WHIRLPOOL_LAGER whirlpoolLager = new extNS.whirlpoolLager.WHIRLPOOL_LAGER(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = whirlpoolLager.b2B_Results_RowItems);

            case "ORBICO_CENOVNIK":
                extNS.orbico.ORBICO_CENOVNIK orbicoCenovnik = new extNS.orbico.ORBICO_CENOVNIK(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = orbicoCenovnik.b2B_Results_RowItems);

            case "COMTRADE_CENOVNIK":
                extNS.comtrade.COMTRADE_CENOVNIK comtradeCenovnik = new extNS.comtrade.COMTRADE_CENOVNIK(konfigDobavljaca, ucitaniXmlDocument);
                return(b2B_Results_RowItems = comtradeCenovnik.b2B_Results_RowItems);

            default:
                return(b2B_Results_RowItems);
            }
        }
예제 #23
0
        private LoadedXmlStatus SetXmlLoadingStatus(int redniBroj, bool isLoaded, int numberOfRecords, string statusDescription, KonfigDobavljaca konfigDobavljaca)
        {
            // status učitavanja
            LoadedXmlStatus status = new LoadedXmlStatus()
            {
                Number            = redniBroj,
                Naziv             = konfigDobavljaca.Naziv,
                URL               = konfigDobavljaca.URL,
                NumberOfRecords   = numberOfRecords,
                IsLoaded          = isLoaded,
                StatusDescription = statusDescription,
                DataSource        = konfigDobavljaca.WebProtokol,
                konfigDobavljaca  = konfigDobavljaca
            };

            return(status);
        }
예제 #24
0
        public COMTRADE_CENOVNIK(KonfigDobavljaca konfigDobavljaca, LoadedXmlDocument ucitaniXmlDocument)
        {
            b2B_Results_RowItems = new List <B2B_Results_RowItem>();

            GenerisiPodatkeZaPrikaz(konfigDobavljaca, ucitaniXmlDocument);
        }
예제 #25
0
파일: FTPHelper.cs 프로젝트: Yoze/WebCene
        public LoadedXmlDocument LoadXmlDocumentForSupplier(KonfigDobavljaca konfigDobavljaca, string requestUriParam)
        {
            LoadedXmlDocument loadedXmlDocument = new LoadedXmlDocument();

            XmlDocument  xmlDocument = new XmlDocument();
            StreamReader reader      = null;

            string requestUri = CreateRequestUri(konfigDobavljaca, requestUriParam);

            try
            {
                /** FTP request - get xml file */

                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(requestUri);
                request.Credentials = new NetworkCredential(konfigDobavljaca.Username, konfigDobavljaca.Password);
                request.KeepAlive   = false;
                request.UseBinary   = true;
                request.UsePassive  = true;
                request.Method      = WebRequestMethods.Ftp.DownloadFile;

                // FTP response
                FtpWebResponse ftpResponse = (FtpWebResponse)request.GetResponse();

                // Stream and Stream Reader
                Stream responseStream = ftpResponse.GetResponseStream();;

                string readerResult;
                using (reader = new StreamReader(responseStream))
                {
                    readerResult = reader.ReadToEnd();
                }

                // Loaded Xml document from xml file
                xmlDocument.LoadXml(readerResult);

                // output object - xml document and status description
                loadedXmlDocument.LoadedXmlDocumentItem.LoadXml(readerResult);
                loadedXmlDocument.StatusDescription = ftpResponse.StatusDescription; // transfer completed

                //var exitMessage = ftpResponse.ExitMessage;


                // dispose ftp reponse
                if (ftpResponse != null)
                {
                    ftpResponse.Close();
                }



                /** Ftp request - get xml file details */

                FtpWebRequest requestFileDetails = (FtpWebRequest)WebRequest.Create(requestUri);
                requestFileDetails.Credentials = new NetworkCredential(konfigDobavljaca.Username, konfigDobavljaca.Password);
                requestFileDetails.KeepAlive   = false;
                requestFileDetails.UseBinary   = true;
                requestFileDetails.UsePassive  = true;
                requestFileDetails.Method      = WebRequestMethods.Ftp.GetDateTimestamp;

                FtpWebResponse ftpFileDetailsResponse = (FtpWebResponse)requestFileDetails.GetResponse();

                // output object - loaded xml file details
                loadedXmlDocument.XmlLastModified = ftpFileDetailsResponse.LastModified;

                // dispose ftp response object
                if (ftpFileDetailsResponse != null)
                {
                    ftpFileDetailsResponse.Close();
                }



                // output result
                return(loadedXmlDocument);
            }
            catch (Exception xcp)
            {
                var msg = xcp.Message;
            }
            return(loadedXmlDocument);
        }
예제 #26
0
        private void GenerisiPodatkeZaPrikaz(KonfigDobavljaca konfigDobavljaca, LoadedXmlDocument ucitaniXmlDocument)
        {
            List <B2B_Results_RowItem> podaciZaPrikaz = new List <B2B_Results_RowItem>();

            extNS.zomimpex.Artikl zomImpex = new extNS.zomimpex.Artikl();
            var serializer = new XmlSerializer(typeof(extNS.zomimpex.Artikl));

            using (XmlReader reader = new XmlNodeReader(ucitaniXmlDocument.LoadedXmlDocumentItem))
            {
                zomImpex = (extNS.zomimpex.Artikl)serializer.Deserialize(reader);
            }

            foreach (var item in zomImpex.InformacijeArtikla)
            {
                if (ModelHelper.Instance.IsValidBarcode(item.Bar_kod))
                {
                    /*
                     *  ZOM - ako je inStock TRue -> kolicina = 5
                     *      ako ima akcijskaCena onda NNC = akcijskaCena else NNC = cena
                     *      PMC = NNC * 1.2 * koefMarze
                     */

                    //  količina
                    int  kolicina   = 0;
                    bool isKolicina = Int32.TryParse(item.Količina, out kolicina);
                    kolicina = (isKolicina && kolicina > 0) ? kolicina : 5;

                    // Akcijska cena
                    double akcijskaCena = 0;
                    bool   isAkcijska   = double.TryParse(item.AkcijskaCena, out akcijskaCena);

                    // NNC
                    double nnc = 0;
                    nnc = (isAkcijska && akcijskaCena > 0) ? akcijskaCena : Convert.ToDouble(item.Cena);

                    // PMC
                    double pmc = 0;
                    //pmc =  nnc * decimal.Multiply( 1.2m, konfigDobavljaca.KeoficijentMarze);

                    if (!konfigDobavljaca.Manualno)
                    {
                        // TODO: kalkulacija NNC i PMC, kako?
                    }


                    B2B_Results_RowItem podatakZaPrikaz = new B2B_Results_RowItem()
                    {
                        Barcode           = item.Bar_kod,
                        Kolicina          = kolicina,
                        NNC               = ModelHelper.Instance.CalculateNNC(nnc, konfigDobavljaca),
                        PMC               = pmc, //TO DO: kalkulacija PMC
                        DatumUlistavanja  = DateTime.Now,
                        PrimarniDobavljac = konfigDobavljaca.Naziv,
                        CenovnikDatum     = DateTime.Now,
                        LagerDatum        = DateTime.Now
                    };
                    podaciZaPrikaz.Add(podatakZaPrikaz);
                }
            }
            b2B_Results_RowItems = podaciZaPrikaz;
        }