Index: VerpakkingsDefinitie/WS/ProductsAgent.pas =================================================================== diff -u -r606 -r607 --- VerpakkingsDefinitie/WS/ProductsAgent.pas (.../ProductsAgent.pas) (revision 606) +++ VerpakkingsDefinitie/WS/ProductsAgent.pas (.../ProductsAgent.pas) (revision 607) @@ -48,6 +48,11 @@ ProductVerpakkingenContext: TProductVerpakkingenContext): TProductVerpakking; function GeefVerpakkingenMetIDs(VerpakkingIDs: TList; UserContext: TUserContext; ProductVerpakkingenContext: TProductVerpakkingenContext): TList; + // Verpakking meta + procedure RegistreerProductGroepenDataset(ProductVerpakkingMetaContext: TProductVerpakkingMetaContext; DataSet: string); + procedure RegistreerGelukteVerpakkingMetaQuery(ProductVerpakkingMetaContext: TProductVerpakkingMetaContext); + procedure RegistreerMislukteVerpakkingMetaQuery(ProductVerpakkingMetaContext: TProductVerpakkingMetaContext; + pxStatusObj: OptiServerService.pxStatus); public Constructor Create(); // UI @@ -66,12 +71,13 @@ ProductVerpakkingenContext: TProductVerpakkingenContext); procedure VerwijderVerpakking(ProductVerpakking: TProductVerpakking; UserContext: TUserContext; ProductVerpakkingenContext: TProductVerpakkingenContext); + // Verpakking meta + procedure LaadProductGroepen(UserContext: TUserContext; ProductVerpakkingMetaContext: TProductVerpakkingMetaContext); end; implementation -uses - StrUtils, Xml.XMLIntf, Xml.XMLDoc; +uses StrUtils, Xml.XMLIntf, Xml.XMLDoc; constructor TProductsAgent.Create(); begin @@ -636,7 +642,8 @@ // Opslaan OpslaanProductVerpakking(NieuweVerpakking, UserContext, ProductVerpakkingenContext); if ProductVerpakkingenContext.IsOK then - ProductVerpakkingenContext.AddProductVerpakking(NieuweVerpakking); // Notify gebeurt hier + ProductVerpakkingenContext.AddProductVerpakking(NieuweVerpakking); + // Notify gebeurt hier end; procedure TProductsAgent.OpslaanGewijzigdeProductVerpakking(ProductVerpakking: TProductVerpakking; UserContext: TUserContext; @@ -933,4 +940,103 @@ ProductVerpakkingenContext.InternalErrorMessage := pxStatusObj.InternalMessage; end; +// Verpakking meta +procedure TProductsAgent.LaadProductGroepen(UserContext: TUserContext; + ProductVerpakkingMetaContext: TProductVerpakkingMetaContext); +var + RequestData: OptiServerService.GetAllProductGroepen; + GetAllProductGroepenResponseObj: OptiServerService.GetAllProductGroepenResponse; +begin + RequestData := nil; + try + // Request + RequestData := OptiServerService.GetAllProductGroepen.Create(); + RequestData.SessionKey := UserContext.SessionKey; + + // Verpakking wissen + GetAllProductGroepenResponseObj := FOptiBoxServerSoap.GetAllProductGroepen(RequestData); + + // Response + if GetAllProductGroepenResponseObj.GetAllProductGroepenResult = nil then + begin + // Gelukt + RegistreerGelukteVerpakkingMetaQuery(ProductVerpakkingMetaContext); + RegistreerProductGroepenDataset(ProductVerpakkingMetaContext, + GetAllProductGroepenResponseObj.varDataSet); + end + else + // Mislukt + RegistreerMislukteVerpakkingMetaQuery(ProductVerpakkingMetaContext, + GetAllProductGroepenResponseObj.GetAllProductGroepenResult); + + finally + FreeAndNil(RequestData); + end; +end; + +procedure TProductsAgent.RegistreerProductGroepenDataset(ProductVerpakkingMetaContext: TProductVerpakkingMetaContext; + DataSet: string); +var + TempStr: string; + Lijn: string; + Lijnen: TStringList; + LijnenProduct: TStringList; + XMLDoc: IXMLDocument; + ProductGroepen: TList; +begin + try + // Producten inladen + LijnenProduct := TStringList.Create; + Lijnen := GeefBruikbareLijnenUitXMLDataSet(DataSet); + ProductGroepen := TList.Create(); + // De 'Select' elementen overlopen en elk element mappen naar een property van een instantie. + // Deze instantie toevoegen aan de lijst. + for Lijn in Lijnen do + begin + if ContainsStr(Lijn, '') then + begin + // Product blok afgerond + + // De eindtag zit geplakt aan de tag voor het nieuwe product. Bv