public WooCommerceNET.WooCommerce.v3.Product GetProdWeb(ArticoloBase artDb, out bool newProd) { var artWeb = new WooCommerceNET.WooCommerce.v3.Product(); newProd = false; if (!string.IsNullOrEmpty(artDb.Aggiornamento.CodiceArticoloEcommerce)) { var tsk = _wc.Product.Get(int.Parse(artDb.Aggiornamento.CodiceArticoloEcommerce), null); tsk.Wait(); artWeb = tsk.Result; } else { var parms = new Dictionary <string, string>(); parms.Add("sku", artDb.ArticoloID.ToString()); var tsk = _wc.Product.GetAll(parms); tsk.Wait(); artWeb = tsk.Result.FirstOrDefault(); if (artWeb == null) { artWeb = new WooCommerceNET.WooCommerce.v3.Product(); newProd = true; } } return(artWeb); }
private void UpdateProduct(ArticoloBase artDb, DateTime dataLettura) { using (var uof = new UnitOfWork()) { product artWeb = new product(); if (!string.IsNullOrEmpty(artDb.Aggiornamento.CodiceArticoloEcommerce)) { artWeb = _productFactory.Get(long.Parse(artDb.Aggiornamento.CodiceArticoloEcommerce)); } ManagerLog.Logger.Info("Caricamento in corso dell'articolo '" + artDb.ArticoloDb.Titolo + "' ID=" + artDb.ArticoloID + " nel web"); SetDataItemWeb(artDb, uof, artWeb); try { if (!artWeb.id.HasValue) { artWeb = _productFactory.Add(artWeb); } else { _productFactory.Update(artWeb); } artDb.Aggiornamento.DataUltimoAggiornamentoWeb = dataLettura; artDb.Aggiornamento.CodiceArticoloEcommerce = artWeb.id.Value.ToString(); artDb.Aggiornamento.Link = artWeb.link_rewrite.First().Value.ToString(); uof.AggiornamentoWebArticoloRepository.Update(artDb.Aggiornamento); uof.Commit(); } catch (Exception ex) { throw ex; } } }
private void UpdateProduct(ArticoloBase artDb, DateTime dataLettura) { using (var uof = new UnitOfWork()) { bool newProd; var artWeb = GetProdWeb(artDb, out newProd); ManagerLog.Logger.Info("Caricamento in corso dell'articolo '" + artDb.ArticoloDb.Titolo + "' ID=" + artDb.ArticoloID + " nel web"); SetDataItemWeb(artDb, uof, artWeb, newProd); try { artWeb = UpdateProdWeb(artWeb); artDb.Aggiornamento.DataUltimoAggiornamentoWeb = dataLettura; artDb.Aggiornamento.CodiceArticoloEcommerce = artWeb.id.Value.ToString(); artDb.Aggiornamento.Link = artWeb.permalink; uof.AggiornamentoWebArticoloRepository.Update(artDb.Aggiornamento); uof.Commit(); } catch (Exception ex) { throw ex; } } }
private void UpdateImage(ArticoloBase artDb, product artWeb, UnitOfWork uof) { DateTime date = DateTime.Now; /*cancello le immagini e le sovrascrivo*/ foreach (var item in artWeb.associations.images) { _syncroBasePresta._imageFactory.DeleteProductImage(artWeb.id.Value, item.id); } var settingSito = SettingSitoValidator.ReadSetting(); var imageList = uof.FotoArticoloRepository.Find(a => a.ArticoloID == artDb.ArticoloID).OrderBy(a => a.Ordine).ToList(); var listFotoArticolo = imageList.Select(a => new ImmaginiFile <FotoArticolo>(Path.Combine( settingSito.CartellaLocaleImmagini, a.UrlFoto) , a.UrlFoto, a)).ToList(); foreach (var item in listFotoArticolo) { _syncroBasePresta._imageFactory.AddProductImage(artWeb.id.Value, item.File); } var aggiornamento = artDb.Aggiornamento; aggiornamento.DataUltimoAggFoto = date; aggiornamento.DataUltimoAggFotoWeb = date; SalvaAggiornamento(uof, aggiornamento); }
private void UpdateImage(ArticoloBase artDb, WooCommerceNET.WooCommerce.v3.Product artWeb, UnitOfWork uof) { //DateTime date = DateTime.Now; /*cancello le immagini e le sovrascrivo*/ artWeb.images.Clear(); foreach (var item in artWeb.images) { } var settingSito = SettingSitoValidator.ReadSetting(); var imageList = uof.FotoArticoloRepository.Find(a => a.ArticoloID == artDb.ArticoloID).OrderBy(a => a.Ordine).ToList(); var listFotoArticolo = imageList.Select(a => new ImmaginiFile <FotoArticolo>(Path.Combine( settingSito.CartellaLocaleImmagini, a.UrlFoto) , a.UrlFoto, a)).ToList(); int ord = 0; foreach (var item in listFotoArticolo) { ///provaale.atwebpages.com/wp-content/uploads/2021/03 artWeb.images.Add(new ProductImage() { src = item.File, position = ord, name = item.Name, alt = artDb.ArticoloDb.Titolo }); ord++; } //var aggiornamento = artDb.Aggiornamento; //aggiornamento.DataUltimoAggFoto = date; //aggiornamento.DataUltimoAggFotoWeb = date; //SalvaAggiornamento(uof, aggiornamento); }
public override bool UpdateStockArt(ArticoloBase artDb, UnitOfWork uof) { if (!string.IsNullOrEmpty(artDb.CodiceArticoloEcommerce)) { product artWeb = _syncroBasePresta.GetProdWebFromCodartEcommerce(artDb); return(UpdateStockArt(artWeb, artDb, uof)); } return(false); }
public override bool UpdateStockArt(ArticoloBase artDb, UnitOfWork uof) { if (!string.IsNullOrEmpty(artDb.CodiceArticoloEcommerce)) { var boolNew = false; var artWeb = _syncroBaseWooCommerce.GetProdWeb(artDb, out boolNew); return(UpdateStockArt(artWeb, artDb, uof)); } return(false); }
/// <summary> /// Aggiorna il magazzino del articolo nel web /// </summary> /// <param name="newArtWeb"></param> /// <param name="artDb"></param> public bool UpdateStockArt(WooCommerceNET.WooCommerce.v3.Product newArtWeb, ArticoloBase artDb, UnitOfWork uof, bool forzaUpdate = false) { var qta = newArtWeb.stock_quantity.Value; var updated = UpdateStockArt(ref qta, artDb, uof, forzaUpdate); if (updated && newArtWeb.stock_quantity != qta) { newArtWeb.stock_quantity = qta; _syncroBaseWooCommerce.UpdateProdWeb(newArtWeb); return(true); } return(false); }
/// <summary> /// Aggiorna il magazzino del articolo nel web /// </summary> /// <param name="newArtWeb"></param> /// <param name="artDb"></param> public bool UpdateStockArt(product newArtWeb, ArticoloBase artDb, UnitOfWork uof, bool forzaUpdate = false) { var stock = _syncroBasePresta._StockAvailableFactory.Get(newArtWeb.associations.stock_availables.First().id); var qta = stock.quantity; var updated = UpdateStockArt(ref qta, artDb, uof, forzaUpdate); if (updated && stock.quantity != qta) { stock.quantity = qta; _syncroBasePresta._StockAvailableFactory.Update(stock); return(true); } return(false); }
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); }
private static void ImpostaCategoria(ArticoloBase artDb, UnitOfWork uof, Product artWeb) { string reparto = ""; artWeb.categories = new List <WooCommerceNET.WooCommerce.v3.ProductCategoryLine>(); artWeb.categories.Clear(); if ( artDb.ArticoloDb.Condizione == enCondizioneArticolo.ExDemo || artDb.ArticoloDb.Condizione == enCondizioneArticolo.UsatoGarantito) { if (artDb.ArticoloDb.Condizione == enCondizioneArticolo.ExDemo) { reparto = CategorySync.ExDemo; } else if (artDb.ArticoloDb.Condizione == enCondizioneArticolo.UsatoGarantito) { reparto = CategorySync.Usato; } artWeb.categories.Add(new WooCommerceNET.WooCommerce.v3.ProductCategoryLine() { id = (int)uof.RepartoWebRepository.Find(a => a.Reparto == reparto).FirstOrDefault().CodiceWeb }); } else { var categDb = uof.CategorieRepository.Find(a => a.ID == artDb.ArticoloDb.CategoriaID).First(); var listaCateg = uof.CategorieWebRepository.Find(a => a.Categoria.Nome == categDb.Nome).Select(a => a.CodiceWeb).ToList(); foreach (var item in listaCateg) { artWeb.categories.Add(new WooCommerceNET.WooCommerce.v3.ProductCategoryLine() { id = (int)item }); } } }
private void SetDataItemWeb(ArticoloBase artDb, UnitOfWork uof, product artWeb) { artWeb.price = Math.Round(artDb.ArticoloDb.ArticoloWeb.PrezzoWeb * 100 / (100 + artDb.ArticoloDb.Iva), 6, MidpointRounding.ToEven); artWeb.name.Clear(); artWeb.AddName(new Bukimedia.PrestaSharp.Entities.AuxEntities.language(1, artDb.ArticoloDb.Titolo)); artWeb.link_rewrite.Clear(); artWeb.AddLinkRewrite(new Bukimedia.PrestaSharp.Entities.AuxEntities.language(1, artDb.ArticoloDb.Titolo)); artWeb.active = 1; artWeb.condition = "new"; artWeb.show_condition = 1; //*iva al 22%*// artWeb.id_tax_rules_group = 1; switch (artDb.ArticoloDb.Condizione) { case enCondizioneArticolo.Nuovo: artWeb.condition = "new"; break; case enCondizioneArticolo.ExDemo: artWeb.condition = "used"; //refurbished break; case enCondizioneArticolo.UsatoGarantito: artWeb.condition = "used"; break; case enCondizioneArticolo.NonSpecificato: break; default: break; } artWeb.show_price = 1; string reparto = ""; if ( artDb.ArticoloDb.Condizione == enCondizioneArticolo.ExDemo || artDb.ArticoloDb.Condizione == enCondizioneArticolo.UsatoGarantito) { if (artDb.ArticoloDb.Condizione == enCondizioneArticolo.ExDemo) { reparto = CategorySync.ExDemo; } else if (artDb.ArticoloDb.Condizione == enCondizioneArticolo.UsatoGarantito) { reparto = CategorySync.Usato; } artWeb.id_category_default = uof.RepartoWebRepository.Find(a => a.Reparto == reparto).FirstOrDefault().CodiceWeb; artWeb.associations.categories.Clear(); artWeb.associations.categories.Add( new Bukimedia.PrestaSharp.Entities.AuxEntities.category( artWeb.id_category_default.Value)); } else { artWeb.id_category_default = uof.CategorieWebRepository.Find(a => a.CategoriaID == artDb.ArticoloDb.CategoriaID).FirstOrDefault().CodiceWeb; var categDb = uof.CategorieRepository.Find(a => a.ID == artDb.ArticoloDb.CategoriaID).First(); var listaCateg = uof.CategorieWebRepository.Find(a => a.Categoria.Nome == categDb.Nome).Select(a => a.CodiceWeb).ToList(); artWeb.associations.categories.Clear(); foreach (var item in listaCateg) { artWeb.associations.categories.Add(new Bukimedia.PrestaSharp.Entities.AuxEntities.category(item)); } } if (string.IsNullOrEmpty(artDb.ArticoloDb.ArticoloWeb.DescrizioneHtml)) { artDb.ArticoloDb.ArticoloWeb.DescrizioneHtml = ""; } artWeb.description.Clear(); artWeb.description.Add(new Bukimedia.PrestaSharp.Entities.AuxEntities.language(1, artDb.ArticoloDb.ArticoloWeb.DescrizioneHtml)); if (string.IsNullOrEmpty(artDb.ArticoloDb.ArticoloWeb.DescrizioneBreveHtml)) { artDb.ArticoloDb.ArticoloWeb.DescrizioneBreveHtml = ""; } artWeb.description_short.Clear(); artWeb.description_short.Add(new Bukimedia.PrestaSharp.Entities.AuxEntities.language(1, artDb.ArticoloDb.ArticoloWeb.DescrizioneBreveHtml)); artWeb.available_for_order = 1; artWeb.New = 0; artWeb.state = 1; artWeb.visibility = "both"; artWeb.minimal_quantity = 1; artWeb.reference = artDb.ArticoloID.ToString(); }
internal product GetProdWebFromCodartEcommerce(ArticoloBase artDb) { return(_productFactory.Get(long.Parse(artDb.CodiceArticoloEcommerce))); }