private void ExecDistantLocal(Model.Prestashop.PsCategory Category, Model.Local.Catalog Catalog, Model.Local.CatalogRepository CatalogRepository) { try { // Recovery Data From CatalogLang Model.Prestashop.PsCategoryLangRepository CategoryLangRepository = new Model.Prestashop.PsCategoryLangRepository(); Model.Prestashop.PsCategoryLang CategoryLang = new Model.Prestashop.PsCategoryLang(); if (CategoryLangRepository.ExistCategoryLang((Int32)Category.IDCategory, Core.Global.Lang, Global.CurrentShop.IDShop)) { CategoryLang = CategoryLangRepository.ReadCategoryLang((Int32)Category.IDCategory, Core.Global.Lang, Global.CurrentShop.IDShop); Catalog.Cat_Name = CategoryLang.Name; Catalog.Cat_Description = CategoryLang.Description; Catalog.Cat_MetaTitle = CategoryLang.MetaTitle; Catalog.Cat_MetaKeyword = CategoryLang.MetaKeywords; Catalog.Cat_MetaDescription = CategoryLang.MetaDescription; Catalog.Cat_LinkRewrite = CategoryLang.LinkRewrite; } bool find_parent = false; if (Category.IDParent != Core.Global.CurrentShop.IDCategory) { if (!CatalogRepository.ExistPre_Id((int)Category.IDParent)) { // todo import catalogue depuis prestashop Core.ImportPrestashop.ImportCatalogue ImportCatalogue = new ImportPrestashop.ImportCatalogue(); ImportCatalogue.Exec((int)Category.IDParent); find_parent = CatalogRepository.ExistPre_Id((int)Category.IDParent); } else { find_parent = true; } if (find_parent) { Catalog.Cat_Level = Category.LevelDepth; } } else { Catalog.Cat_Level = Category.LevelDepth; } //Catalog.Cat_Position = (Int32)Category.Position; Catalog.Cat_Active = Convert.ToBoolean(Category.Active); Catalog.Cat_Date = (Category.DateUpd != null && Category.DateUpd > new DateTime(1753, 1, 2)) ? Category.DateUpd : DateTime.Now.Date; CatalogRepository.Save(); int parent = (Category.IDParent != Core.Global.CurrentShop.IDCategory) ? CatalogRepository.ReadPre_Id((int)Category.IDParent).Cat_Id : 0; CatalogRepository.WriteParent(Catalog.Cat_Id, parent); } catch (Exception ex) { Core.Error.SendMailError(ex.ToString()); } }
public void MoveCatalog() { if (MessageBox.Show("Valider le déplacement de :\n\"" + TargetCatalog.Cat_Name + "\"\n vers :\n\"" + ((SelectedCatalog == null) ? "Racine boutique" : SelectedCatalog.Cat_Name) + "\"", "Déplacement catalogue", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { CatalogRepository.WriteParent(TargetCatalog.Cat_Id, ((SelectedCatalog == null) ? 0 : SelectedCatalog.Cat_Id)); CatalogRepository = new Model.Local.CatalogRepository(); TargetCatalog = CatalogRepository.ReadId(TargetCatalog.Cat_Id); TargetCatalog.Cat_Level = ((SelectedCatalog == null) ? 2 : SelectedCatalog.Cat_Level + 1); TargetCatalog.Cat_Date = DateTime.Now; // <JG> 07/10/2016 ajout recalcul des niveaux sur les enfants ChangeLevelChilds(TargetCatalog); CatalogRepository.Save(); } }
private void ExecLocalDistant(Model.Local.Catalog Catalog, Model.Prestashop.PsCategory Category, Model.Local.CatalogRepository CatalogRepository, Model.Prestashop.PsCategoryRepository CategoryRepository, Boolean isCategory, uint IdParent) { try { bool flag_move = (Category.IDParent != IdParent); Core.Temp.SyncCatalogue_ClearSmartyCache = true; Core.Temp.SyncCatalogue_RegenerateTree = true; // Assign data from Catalog to Category //Category.Position = (uint)Catalog.Cat_Position; Category.Active = Convert.ToByte(Catalog.Cat_Active); Category.LevelDepth = (Byte)Catalog.Cat_Level; Category.IDParent = IdParent; Category.DateUpd = Catalog.Cat_Date; // use cron for function "regenerateEntireNtree" //Category.NLeft = CategoryRepository.ReadId(IdParent).NLeft; //Category.NRight = CategoryRepository.ReadId(IdParent).NRight; Category.IDShopDefault = Global.CurrentShop.IDShop; if (isCategory == false) { Category.DateAdd = Category.DateUpd; Category.IsRootCategory = Convert.ToSByte(false); Category.Position = 0; CategoryRepository.Add(Category, Global.CurrentShop.IDShop); // We assign the CategoryId to Catalog Catalog.Pre_Id = (Int32)Category.IDCategory; CatalogRepository.Save(); } else { CategoryRepository.Save(); if (flag_move) { Model.Prestashop.PsCategoryShopRepository PsCategoryShopRepository = new Model.Prestashop.PsCategoryShopRepository(); if (PsCategoryShopRepository.ExistCategoryShop(Category.IDCategory, Core.Global.CurrentShop.IDShop)) { Model.Prestashop.PsCategoryShop PsCategoryShop = PsCategoryShopRepository.ReadCategoryShop(Category.IDCategory, Core.Global.CurrentShop.IDShop); PsCategoryShop.Position = new Model.Prestashop.PsCategoryRepository().ReadNextPosition(1, Category, (uint)Core.Global.CurrentShop.IDShop); PsCategoryShopRepository.Save(); Category.Position = PsCategoryShop.Position; CategoryRepository.Save(); } } } // We need to update CategoryLang too Boolean isCategoryLang = false; Model.Prestashop.PsCategoryLangRepository CategoryLangRepository = new Model.Prestashop.PsCategoryLangRepository(); Model.Prestashop.PsCategoryLang CategoryLang = new Model.Prestashop.PsCategoryLang(); if (CategoryLangRepository.ExistCategoryLang((Int32)Category.IDCategory, Core.Global.Lang, Global.CurrentShop.IDShop)) { CategoryLang = CategoryLangRepository.ReadCategoryLang((Int32)Category.IDCategory, Core.Global.Lang, Global.CurrentShop.IDShop); isCategoryLang = true; } CategoryLang.Name = Core.Global.RemovePurge(Catalog.Cat_Name, 128); CategoryLang.Description = Catalog.Cat_Description; CategoryLang.LinkRewrite = Core.Global.ReadLinkRewrite(Catalog.Cat_LinkRewrite); CategoryLang.MetaTitle = Core.Global.RemovePurge(Catalog.Cat_MetaTitle, 70); CategoryLang.MetaDescription = Core.Global.RemovePurge(Catalog.Cat_MetaDescription, 160); CategoryLang.MetaKeywords = Core.Global.RemovePurgeMeta(Catalog.Cat_MetaKeyword, 255); if (isCategoryLang == false) { CategoryLang.IDShop = Global.CurrentShop.IDShop; CategoryLang.IDLang = (uint)Core.Global.Lang; CategoryLang.IDCategory = Category.IDCategory; CategoryLangRepository.Add(CategoryLang); } else { CategoryLangRepository.Save(); } // <JG> 26/12/2012 ajout insertion autres langues actives si non renseignées try { Model.Prestashop.PsLangRepository PsLangRepository = new Model.Prestashop.PsLangRepository(); foreach (Model.Prestashop.PsLang PsLang in PsLangRepository.ListActive(1, Global.CurrentShop.IDShop)) { if (!CategoryLangRepository.ExistCategoryLang((int)Category.IDCategory, PsLang.IDLang, Global.CurrentShop.IDShop)) { CategoryLang = new Model.Prestashop.PsCategoryLang(); CategoryLang.IDShop = Global.CurrentShop.IDShop; CategoryLang.IDCategory = Category.IDCategory; CategoryLang.IDLang = PsLang.IDLang; CategoryLang.Name = Core.Global.RemovePurge(Catalog.Cat_Name, 128); CategoryLang.Description = Catalog.Cat_Description; CategoryLang.LinkRewrite = Core.Global.ReadLinkRewrite(Catalog.Cat_LinkRewrite); CategoryLang.MetaTitle = Core.Global.RemovePurge(Catalog.Cat_MetaTitle, 70); CategoryLang.MetaDescription = Core.Global.RemovePurge(Catalog.Cat_MetaDescription, 160); CategoryLang.MetaKeywords = Core.Global.RemovePurgeMeta(Catalog.Cat_MetaKeyword, 255); CategoryLangRepository.Add(CategoryLang); } } } catch (Exception ex) { Core.Error.SendMailError(ex.ToString()); } this.ExecGroupsLocalDistant(Category); // We need to send pictures this.ExecLocalDistantImage(Catalog, Category); } catch (Exception ex) { Core.Error.SendMailError(ex.ToString()); } }