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; }
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; }
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; }
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!"); } }
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; }
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; }
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; }
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; }
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; }
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; }
private List <B2B_Results_RowItem> MergePriceListAndStockList(List <B2B_Results_RowItem> priceList, List <B2B_Results_RowItem> stockList) { List <B2B_Results_RowItem> mergedPriceAndStockLists = new List <B2B_Results_RowItem>(); mergedPriceAndStockLists = priceList; for (int i = 0; i < priceList.Count; i++) { B2B_Results_RowItem equalRow = stockList.Find(ean => ean.Barcode.Equals(priceList[i].Barcode)); if (equalRow != null) { priceList[i].Kolicina = equalRow.Kolicina; priceList[i].LagerDatum = equalRow.LagerDatum.Date; } else { priceList[i].Kolicina = 0; priceList[i].LagerDatum = DateTime.MinValue.Date; } } return(mergedPriceAndStockLists); }
//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); }
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; }