Beispiel #1
0
        /// <summary>
        /// получаем конечную цену (маржа и доставка уже включены)
        /// </summary>
        /// <param ftpFolder="price">себестоимость</param>
        /// <param ftpFolder="currency">валюта</param>
        /// <returns>возвращает конечную цену продажи</returns>
        public double GetPrice(StockRecord record, string currency, int Marzha = 0)
        {
            if (currency == "RUB" && Marzha == 0)
            {
                Marzha = marzha; //это для дисконта, там без маржи вызов функции, тут исправил а в других экспортерах возможно это осталось
                //но возможно у каких-то магазинов тоже это осталось
            }
            if (currency == "RUB")
            {
                Marzha = marzha;
            }
            double price = Exporter.GetPrice(record, currency, "RUB", Marzha);

            return(price);


            //double resultPrice;
            //if (currency == "USD")
            //{
            //    if (record.sellPrice > 0)
            //    {
            //        resultPrice = record.sellPrice;
            //        return resultPrice * Settings.USD_SELL;
            //    }
            //    else
            //    {
            //        resultPrice = record.price + Marzha;
            //        return resultPrice * Settings.USD_BUY;
            //        //throw new Exception("нет цены продажи sku:" + record.sku);
            //    }
            //}
            //if (currency == "EUR")
            //{
            //    if (record.sellPrice > 0)
            //    {
            //        resultPrice = record.sellPrice * Settings.EURO_BUY;
            //        return resultPrice;
            //    }
            //    else
            //    {
            //        if (Marzha == 0)
            //            throw new Exception("marzha = 0. sku: " + record.sku);
            //        record.sellPrice = record.price + Marzha;
            //        resultPrice = record.sellPrice * Settings.EURO_BUY;
            //        return resultPrice;
            //    }
            //}
            //if (currency == "CHF")
            //{
            //    if (record.sellPrice > 0)
            //    {
            //        resultPrice = record.sellPrice * Settings.CHF_BUY;
            //        return resultPrice;
            //    }
            //    else
            //    {
            //        throw new Exception("нет цены продажи sku:" + record.sku);
            //    }
            //}
            //else if (currency == "RUB")
            //{
            //    var sneaker = catalog.GetSneakerFromSKU(record.sku);
            //    if (sneaker != null)
            //    {
            //        if (sneaker.type == "Сланцы")
            //        {
            //            resultPrice = record.price + marzha;
            //            return resultPrice;
            //        }
            //    }
            //    resultPrice = record.price + marzha;
            //    return resultPrice;
            //}
            //throw new NotImplementedException();
        }
        public void CreateRecords()
        {
            //Program.logger.Info("Nashstock exporting...");
            //foreach (var stockRecord in NashStock1.records)
            //{
            //    if (stockRecord.quantity > 0)
            //    {
            //        BonanzaRecord bRecord = new BonanzaRecord();
            //        bRecord.id = stockRecord.sku + "-" + stockRecord.size;
            //        bRecord.size = stockRecord.size;
            //        bRecord.upc = stockRecord.upc;
            //        //double sellPrice = stockRecord.sellPrice;
            //        //if (sellPrice == 0)
            //        //    sellPrice = stockRecord.price + marzha;
            //        //double price = (sellPrice + dostavkaFromRussia) / Settings.USD_SELL;
            //        double price = Exporter.GetPrice2(stockRecord.price, NashStockParser.VAT_VALUE, NashStockParser.DELIVERY_TO_USA, NashStockParser.MARZHA, NashStockParser.CURRENCY, "USD");

            //        bRecord.price = Math.Round(price, 2).ToString();
            //        Records.Add(bRecord);
            //    }
            //}

            //Program.logger.Info("Discont Samara exporting...");
            //foreach (var Discont in DiscontStocks)
            //{
            //    foreach (var stockRecord in Discont.records)
            //    {
            //        if (stockRecord.quantity > 3)
            //        {
            //            string id = stockRecord.sku + "-" + stockRecord.size;
            //            //double price = GetPrice(stockRecord, "RUB", marzha);
            //            double price = Exporter.GetPrice2(stockRecord.price, DiscontSamaraParser.VAT_VALUE, DiscontSamaraParser.DELIVERY_TO_USA, DiscontSamaraParser.MARZHA, DiscontSamaraParser.CURRENCY, "USD");
            //            BonanzaRecord bRecord = @GetRecordFromId(id);
            //            if (bRecord == null)
            //            {
            //                bRecord = new BonanzaRecord();
            //                bRecord.id = id;
            //                bRecord.size = stockRecord.size;
            //                bRecord.upc = stockRecord.upc;
            //                bRecord.price = Math.Round(price, 2).ToString();
            //                Records.Add(bRecord);
            //            }
            //            else //если уже есть то добавляем только нужное
            //            {
            //                if (String.IsNullOrWhiteSpace(bRecord.upc) && !String.IsNullOrWhiteSpace(stockRecord.upc))
            //                    bRecord.upc = stockRecord.upc;
            //                if (Double.Parse(bRecord.price) > price)
            //                    bRecord.price = price.ToString();
            //            }
            //        }
            //    }
            //}


            foreach (var shopStock in ShopStocks)
            {
                if (shopStock.Currency == "RUB")
                {
                    //пропускаем этот магазин, работаем только с зарубежными магазами
                    bool test = true;
                }
                else
                {
                    Program.Logger.Info(shopStock.Name + " exporting...");
                    foreach (var stockRecord in shopStock.records)
                    {
                        //price
                        //double price = GetPrice(stockRecord, shopStock.Currency, shopStock.Marzha);
                        double price = Exporter.GetPrice2(stockRecord.price, shopStock.VatValue, shopStock.DeliveryToUSA, shopStock.Marzha, shopStock.Currency, "USD");
                        //double price = Exporter.GetPrice(stockRecord, shopStock.Currency, "USD", shopStock.Marzha);
                        string id = stockRecord.sku + "-" + stockRecord.size;

                        BonanzaRecord bRecord = @GetRecordFromId(id);
                        if (bRecord == null)
                        {
                            bRecord       = new BonanzaRecord();
                            bRecord.id    = id;
                            bRecord.size  = stockRecord.size;
                            bRecord.upc   = stockRecord.upc;
                            bRecord.price = Math.Round(price, 2).ToString();
                            Records.Add(bRecord);
                        }
                        else //если уже есть то добавляем только нужное
                        {
                            //double price = stockRecord.price + marzha;
                            if (Double.Parse(bRecord.price) > price)
                            {
                                bRecord.price = Math.Round(price, 2).ToString();
                            }
                        }
                    }
                }
            }

            //стоки объединили теперь добавляем данные из каталога

            List <BonanzaRecord> newRecords = new List <BonanzaRecord>();

            foreach (var bRecord in Records)
            {
                var sneaker = GetCatalogRecordFromId(bRecord.id);
                if (sneaker != null)
                {
                    //sneaker.brand = "Nike";
                    bool result = bRecord.run(sneaker.brand, sneaker.title, sneaker.sku, bRecord.size, bRecord.upc, sneaker.sex, sneaker.category, double.Parse(bRecord.price), sneaker.images);
                    if (result)
                    {
                        newRecords.Add(bRecord);
                    }
                }
                else
                {
                    Console.WriteLine("bRecord is not exist in catalog. id: " + bRecord.id);
                }
            }

            //добавляем расширенное описание Description2
            int i = 0;

            foreach (var record in newRecords)
            {
                i++;
                var sneaker    = GetCatalogRecordFromId(record.id);
                var sizes      = BonanzaExporter.GetAllSizesFromSku(sneaker.sku, newRecords);
                var sizeString = BonanzaRecord.CreateSizeString(record.size, sneaker.category);
                //record.description = BonanzaRecord.SetDescription2(record.title, sneaker.sku, sizeString, sneaker.brand, record.condition, sizes);
                record.description = BonanzaRecord.CreateDescription2Small(record.title, sneaker.sku, sizeString, sizes);
            }

            Records = newRecords;
        }