import mx.collections.ArrayCollection; import mx.controls.NumericStepper; import mx.events.DataGridEvent; [Bindable] public var credits : ArrayCollection = new ArrayCollection( [ {quantity:1, price:8}, {quantity:100, price:3}, {quantity:1000, price:1} ] ); [Bindable] public var articles : ArrayCollection = new ArrayCollection( [ {product:"Crédit", pu:8, quantity:1, pt:8}, {product:"Dazel", pu:100, quantity:1, pt:100}, {product:"Telemed", pu:500, quantity:1, pt:500} ] ); [Bindable] public var basket : ArrayCollection = new ArrayCollection(); [Bindable] private var totalPriceWithTaxes : Number = 0; [Bindable] public var vatValue : Number = 0; [Bindable] private var totalPriceWithoutTaxes : Number = 0; private function modifyEditedData( event : DataGridEvent ) : void { var colName : String = basketDataGrid.columns[ event.columnIndex ].dataField; if( colName == "quantity" ) { basketDataGrid.editedItemRenderer.data.quantity = NumericStepper(basketDataGrid.itemEditorInstance).value; if( basketDataGrid.editedItemRenderer.data.product == "Crédit" ) { if( basketDataGrid.editedItemRenderer.data.quantity < 100 ) basketDataGrid.editedItemRenderer.data.pu = 8; if( basketDataGrid.editedItemRenderer.data.quantity > 99 && basketDataGrid.editedItemRenderer.data.quantity < 1000 ) basketDataGrid.editedItemRenderer.data.pu = 3; if( basketDataGrid.editedItemRenderer.data.quantity > 999 ) basketDataGrid.editedItemRenderer.data.pu = 1; } basketDataGrid.editedItemRenderer.data.pt = basketDataGrid.editedItemRenderer.data.quantity * basketDataGrid.editedItemRenderer.data.pu; basketDataGrid.dataProvider.refresh(); } totalPriceWithTaxes = 0; for each( var value : * in basket ) { totalPriceWithTaxes += value.pt; } vatValue = totalPriceWithTaxes * 0.20; totalPriceWithoutTaxes = totalPriceWithTaxes - vatValue; } private function updateBasket() : void { totalPriceWithTaxes = 0; for each( var value : * in basket ) { totalPriceWithTaxes += value.pt; } vatValue = totalPriceWithTaxes * 0.20; totalPriceWithoutTaxes = totalPriceWithTaxes - vatValue; }