private void UpdateProdotti(List <int> prodotti, UnitOfWork uof, Deposito depoPrinc) { foreach (var idProdotto in prodotti) { var prodottoTsk = _wc.Product.Get(idProdotto); prodottoTsk.Wait(); var prodotto = prodottoTsk.Result; var aggiornamento = uof.AggiornamentoWebArticoloRepository. Find(a => a.CodiceArticoloEcommerce == idProdotto.ToString()).FirstOrDefault(); /*è nullo solo se l'articolo è nel web ma non in locale*/ if (aggiornamento == null) { continue; } if (aggiornamento.GiacenzaMagazzinoWebInDataAggWeb != prodotto.stock_quantity) { var qtaStockLocale = StockProductsBase.CalcolaStock(new ArticoloBase() { ArticoloID = aggiornamento.ArticoloID }); var forzaUpdateGiacenza = (aggiornamento.GiacenzaMagazzinoWebInDataAggWeb != qtaStockLocale); var dataAgg = DateTime.Now; ///se c'è stata una vendita allora aggiungo un movimento di magazzino uof.MagazzinoRepository.Add(new Library.Entity.Magazzino() { ArticoloID = aggiornamento.ArticoloID, DepositoID = depoPrinc.ID, Qta = -(aggiornamento.GiacenzaMagazzinoWebInDataAggWeb - prodotto.stock_quantity.Value), PrezzoAcquisto = 0, Note = aggiornamento.GiacenzaMagazzinoWebInDataAggWeb > prodotto.stock_quantity.Value ? "Vendita web Annullata" : "Vendita web Annullata", OperazioneWeb = true }); aggiornamento.GiacenzaMagazzinoWebInDataAggWeb = prodotto.stock_quantity.Value; aggiornamento.DataUltimoAggMagazzinoWeb = dataAgg; aggiornamento.DataUltimoAggMagazzino = dataAgg; uof.AggiornamentoWebArticoloRepository.Update(aggiornamento); uof.Commit(); if (forzaUpdateGiacenza) { var qta = prodotto.stock_quantity.Value; StockProductsBase.UpdateStockArt(ref qta, new ArticoloBase() { ArticoloID = aggiornamento.ArticoloID, Aggiornamento = aggiornamento, CodiceArticoloEcommerce = aggiornamento.CodiceArticoloEcommerce, ArticoloDb = aggiornamento.Articolo }, uof, true); } } } }
private void SetDataItemWeb(ArticoloBase artDb, UnitOfWork uof, WooCommerceNET.WooCommerce.v3.Product artWeb, bool newProd) { artWeb.regular_price = Math.Round(artDb.ArticoloDb.ArticoloWeb.PrezzoWeb * 100 / (100 + artDb.ArticoloDb.Iva), 6, MidpointRounding.ToEven); //artWeb.sale_price = Math.Round(artDb.ArticoloDb.ArticoloWeb.PrezzoWeb * 100 / (100 + artDb.ArticoloDb.ArticoloWeb.Iva), 6, MidpointRounding.ToEven); artWeb.name = artDb.ArticoloDb.Titolo; //*iva al 22%*// artWeb.tax_class = artDb.ArticoloDb.Iva.ToString(); ImpostaCategoria(artDb, uof, artWeb); if (string.IsNullOrEmpty(artDb.ArticoloDb.ArticoloWeb.DescrizioneHtml)) { artWeb.description = ""; artWeb.enable_html_description = false; } else { artWeb.description = artDb.ArticoloDb.ArticoloWeb.DescrizioneHtml; artWeb.enable_html_description = true; } artWeb.short_description = artDb.ArticoloDb.ArticoloWeb.DescrizioneBreveHtml; artWeb.enable_html_short_description = "true"; if (artDb.ArticoloDb.Condizione != enCondizioneArticolo.Nuovo) { artWeb.name = "USATO " + artWeb.name; artWeb.description = "USATO " + artWeb.description; } artWeb.manage_stock = true; if (newProd) { artWeb.stock_quantity = StockProductsBase.CalcolaStock(new ArticoloBase() { ArticoloID = artDb.ArticoloID }); } artWeb.sku = artDb.ArticoloID.ToString(); UpdateImage(artDb, artWeb, uof); }