Index: VerpakkingsDefinitie/WS/ProductsAgent.pas =================================================================== diff -u -r604 -r605 --- VerpakkingsDefinitie/WS/ProductsAgent.pas (.../ProductsAgent.pas) (revision 604) +++ VerpakkingsDefinitie/WS/ProductsAgent.pas (.../ProductsAgent.pas) (revision 605) @@ -41,7 +41,7 @@ pxStatusObj: OptiServerService.pxStatus); overload; function BepaalNieuwCutOrderProductVerpakking(ProductVerpakkingen: TEnumerable): Integer; procedure OpslaanProductVerpakking(ProductVerpakking: TProductVerpakking; UserContext: TUserContext; - ProductVerpakkingenContext: TProductVerpakkingenContext; nieuw: Boolean); + ProductVerpakkingenContext: TProductVerpakkingenContext); function GetVerpakkingIDsViaProduct(ProductNr: Integer; UserContext: TUserContext; ProductVerpakkingenContext: TProductVerpakkingenContext): TList; function GeefVerpakkingMetID(VerpakkingID: string; UserContext: TUserContext; @@ -620,7 +620,7 @@ // Nadien slaan we deze verpakking meteen op de server. if ProductVerpakking = nil then exit; - { TODO : Bug: dupliceren van diplicaat geeft probleem met default data (data uit database lijkt alsof leeg ID werd gebruikt, geeft leeg object terug dan) } + NieuweVerpakking := GeefVerpakkingMetID(ProductVerpakking.ID, UserContext, ProductVerpakkingenContext); if ProductVerpakkingenContext.IsOK = false then @@ -634,20 +634,20 @@ NieuweVerpakking.CutOrder := BepaalNieuwCutOrderProductVerpakking(ProductVerpakkingen); // Opslaan - OpslaanProductVerpakking(NieuweVerpakking, UserContext, ProductVerpakkingenContext, True); + OpslaanProductVerpakking(NieuweVerpakking, UserContext, ProductVerpakkingenContext); if ProductVerpakkingenContext.IsOK then ProductVerpakkingenContext.AddProductVerpakking(NieuweVerpakking); // Notify gebeurt hier end; procedure TProductsAgent.OpslaanGewijzigdeProductVerpakking(ProductVerpakking: TProductVerpakking; UserContext: TUserContext; ProductVerpakkingenContext: TProductVerpakkingenContext); begin - OpslaanProductVerpakking(ProductVerpakking, UserContext, ProductVerpakkingenContext, false); + OpslaanProductVerpakking(ProductVerpakking, UserContext, ProductVerpakkingenContext); ProductVerpakkingenContext.NotifyChanged(); end; procedure TProductsAgent.OpslaanProductVerpakking(ProductVerpakking: TProductVerpakking; UserContext: TUserContext; - ProductVerpakkingenContext: TProductVerpakkingenContext; nieuw: Boolean); + ProductVerpakkingenContext: TProductVerpakkingenContext); var RequestData: OptiServerService.SaveBoxData; VerpakkingData: OptiServerService.pxBoxData; @@ -667,19 +667,19 @@ SaveBoxDataResponseObj := FOptiBoxServerSoap.SaveBoxData(RequestData); // Response - if SaveBoxDataResponseObj.SaveBoxDataResult = nil then + if (SaveBoxDataResponseObj.SaveBoxDataResult <> nil) and (SaveBoxDataResponseObj.SaveBoxDataResult.IsOK) then begin - // Gelukt + // Nieuw product en geslaagd RegistreerGelukteVerpakkingQuery(ProductVerpakkingenContext); - if nieuw then - // ID juist zetten - ProductVerpakking.ID := SaveBoxDataResponseObj.SaveBoxDataResult.Data; + // ID juist zetten + ProductVerpakking.ID := SaveBoxDataResponseObj.SaveBoxDataResult.Data end + else if SaveBoxDataResponseObj.SaveBoxDataResult = nil then + // Opslaan van bestaand product gelukt. + RegistreerGelukteVerpakkingQuery(ProductVerpakkingenContext) else - begin // Mislukt RegistreerMislukteVerpakkingQuery(ProductVerpakkingenContext, SaveBoxDataResponseObj.SaveBoxDataResult); - end; end; procedure TProductsAgent.VerwijderVerpakking(ProductVerpakking: TProductVerpakking; UserContext: TUserContext;