Index: VerpakkingsDefinitie/UI/ProductDetailScherm.pas =================================================================== diff -u -r598 -r599 --- VerpakkingsDefinitie/UI/ProductDetailScherm.pas (.../ProductDetailScherm.pas) (revision 598) +++ VerpakkingsDefinitie/UI/ProductDetailScherm.pas (.../ProductDetailScherm.pas) (revision 599) @@ -21,14 +21,17 @@ LabelProductNaam: TLabel; ListViewVerpakkingen: TListView; GroupBox1: TGroupBox; - ButtonNieuw: TButton; - ButtonVerwijder: TButton; + ButtonNieuweVerpakking: TButton; + ButtonVerwijderVerpakking: TButton; LabelProductNummer: TLabel; - Label17: TLabel; + ButtonDupliceerVerpakking: TButton; + Label2: TLabel; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure ListViewVerpakkingenSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); + procedure ButtonNieuweVerpakkingClick(Sender: TObject); + procedure ButtonDupliceerVerpakkingClick(Sender: TObject); private FProductsContextSubject: TSubject; FProductsContextSubjectObserver: TSubjectObserver; @@ -39,6 +42,7 @@ LabelGeenData: TLabel; + procedure VerwerkAgentVerpakkingCall(); procedure UpdateGuiProduct(Sender: TObject); procedure UpdateGuiVerpakkingen(Sender: TObject); procedure LaadProductVerpakkingen(GeselecteerdProduct: TProductInformatie); @@ -82,14 +86,47 @@ FVerpakkingenContextSubject.UnregisterObserver(FVerpakkingenContextSubjectObserver); end; +procedure TFormProductDetail.ButtonNieuweVerpakkingClick(Sender: TObject); +begin + FProductsAgent.NieuweVerpakking(ApplicationContext.ProductVerpakkingContext.ProductVerpakkingen.Count + 1, + ApplicationContext.ProductsContext.GeselecteerdProduct, ApplicationContext.UserContext, + ApplicationContext.ProductVerpakkingContext); + + VerwerkAgentVerpakkingCall(); +end; + +procedure TFormProductDetail.ButtonDupliceerVerpakkingClick(Sender: TObject); +begin + FProductsAgent.DupliceerVerpakking(ApplicationContext.ProductVerpakkingContext.GeselecteerdeVerpakking, + ApplicationContext.ProductVerpakkingContext.ProductVerpakkingen.Count + 1, ApplicationContext.UserContext, + ApplicationContext.ProductVerpakkingContext); + + VerwerkAgentVerpakkingCall(); +end; + +procedure TFormProductDetail.VerwerkAgentVerpakkingCall(); +var + ErrorMessage: string; +begin + if self.ApplicationContext.ProductVerpakkingContext.IsOK = false then + begin + // Opzoeking gefaald + ErrorMessage := self.ApplicationContext.ProductVerpakkingContext.ErrorMessage; + if self.ApplicationContext.ProductVerpakkingContext.InternalErrorMessage <> '' then + ErrorMessage := ErrorMessage + sLineBreak + self.ApplicationContext.ProductVerpakkingContext.InternalErrorMessage; + + MessageDlg(ErrorMessage, TMsgDlgType.mtInformation, [mbOK], 0, mbCancel); + end; +end; + procedure TFormProductDetail.UpdateGuiProduct(Sender: TObject); var GeselecteerdProduct: TProductInformatie; begin GeselecteerdProduct := ApplicationContext.ProductsContext.GeselecteerdProduct; if GeselecteerdProduct = nil then begin - TUtil.ToonLabelOverScherm(self, LabelGeenData, GEEN_DATA_CAPTION, False); + TUtil.ToonLabelOverScherm(self, LabelGeenData, GEEN_DATA_CAPTION, false); exit; end; @@ -108,24 +145,12 @@ end; procedure TFormProductDetail.LaadProductVerpakkingen(GeselecteerdProduct: TProductInformatie); -var - ErrorMessage: string; begin // Product informatie ophalen FProductsAgent.ZoekProductVerpakkingenMetProductNr(GeselecteerdProduct.ProductNr, self.ApplicationContext.UserContext, self.ApplicationContext.ProductVerpakkingContext); - if self.ApplicationContext.ProductVerpakkingContext.IsOK then - // Gelukt - else - begin - // Opzoeking gefaald - ErrorMessage := self.ApplicationContext.ProductVerpakkingContext.ErrorMessage; - if self.ApplicationContext.ProductVerpakkingContext.InternalErrorMessage <> '' then - ErrorMessage := ErrorMessage + sLineBreak + self.ApplicationContext.ProductVerpakkingContext.InternalErrorMessage; - - MessageDlg(ErrorMessage, TMsgDlgType.mtInformation, [mbOK], 0, mbCancel); - end; + VerwerkAgentVerpakkingCall(); end; procedure TFormProductDetail.ListViewVerpakkingenSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); @@ -136,7 +161,7 @@ TProductVerpakking(ListViewVerpakkingen.Selected.Data) then begin // Product selecteren. Wij doen de selectie en willen dus niet opnieuw worden opgeroepen. - FVerpakkingenContextSubjectObserver.Enabled := False; + FVerpakkingenContextSubjectObserver.Enabled := false; ApplicationContext.ProductVerpakkingContext.GeselecteerdeVerpakking := TProductVerpakking(ListViewVerpakkingen.Selected.Data); FVerpakkingenContextSubjectObserver.Enabled := true; @@ -196,7 +221,8 @@ begin // Details controls enable status aanpassen naargelang er een verpakking geselecteerd is. VerpakkingAanwezigEnGeselecteerd := (ListViewVerpakkingen.Items.Count > 0) and (ListViewVerpakkingen.ItemIndex >= 0); - ButtonVerwijder.Enabled := VerpakkingAanwezigEnGeselecteerd; + ButtonDupliceerVerpakking.Enabled := VerpakkingAanwezigEnGeselecteerd; + ButtonVerwijderVerpakking.Enabled := VerpakkingAanwezigEnGeselecteerd; end; end.