Aluminium Extrution Manufactoring
Introduction
Aluminium Extrusion manufacturing usually will based on a variable length and a fixed linear weight to determine the price before quote to customer.
Updates
Last Customisation Update : 06 Nov 2015
Criterias
Maintain Stock Group
[Stock | Maintain Stock Group...]
Stock group will be used as the Product Grade to categorise the stock items list.
Maintain Stock Item
[Stock | Maintain Stock Item...]
- Stock Master Data.
| Types | Field Name | Data Types | Length | Usage |
|---|---|---|---|---|
| STD | Code | String | 30 | Product Code, eg. EA 6035 (NA) |
| STD | Description | String | 200 | Product Name |
| STD | 2nd Description | String | 200 | Aluminium size to be display in sales tax invoice, eg. 38.10 x 1.80 thk |
| STD | Base UOM | String | 10 | stock unit of measurement, usually either enter as PCS or KG or Roll |
| DIY | Linear Weight (Kg/M) | Float | Size :10, SubSize: 4 | Linear Weight (Kg/M) value |
Sales Document Entry
-
Sales document types include:
- Quotation
- Sales Order
- Delivery Order
- Invoice
- Debit Note
- Credit Note
-
Insert and update the following DIY fields & Script into above mentions sales documents in Tools | DIY | SQL Control Center...
-
DIY Fields
Type Field Name Data Types Length DIY-F Length Float Size: 10, SubSize: 4 DIY-F LinearWeight Float Size: 10, SubSize: 4 DIY-F UnitPrice_Kg Float Size: 10, SubSize: 4 DIY-F UnitPrice_Pcs Float Size: 10, SubSize: 4 DIY-F Qty_Kg Float Size: 10, SubSize: 4 DIY-F Qty_Pcs Float Size: 10, SubSize: 4 -
DIY Script: OnGridColumnValueChange event
varFComServer : Variant;function ComServer: Variant;beginif FComServer = Null then beginFComServer := CreateOleObject('SQLAcc.BizApp');end;Result := FComServer;end;varlSQL, lCode : String;cdsTemp : TClientDataSet;D : TDataSource;beginFComServer := null;D := TDataSource(Self.FindComponent('dsDocDetail'));cdsTemp := TClientDataSet.Create(nil);lCode := D.DataSet.FindField('ItemCode').AsString;lSQL := Format('SELECT UDF_LinearWeight FROM ST_ITEM WHERE Code=%s ',[QuotedStr(lCode)]);cdsTemp.Data := ComServer.DBManager.Execute(lSQL);//select item and batch to retrieve the linear weight from item masterif SameText(editingfield,'ItemCode') orSameText(editingfield,'Batch') then beginD.DataSet.FindField('UDF_LinearWeight').Value := cdsTemp.FindField('UDF_LinearWeight').Value;D.DataSet.FindField('UDF_Length').Value := 0;end;//select batch as "Length value"if SameText(editingfield,'Batch') then beginD.DataSet.FindField('UDF_Length').Value := D.DataSet.FindField('Batch').Value;end;//key-in unit price per kg to convert into unit price per pcsif SameText(editingfield,'UDF_UnitPrice_Kg') orSameText(editingfield,'Batch') then beginD.DataSet.FindField('UDF_UnitPrice_Pcs').AsFloat := (D.DataSet.FindField('UDF_UnitPrice_Kg').AsFloat*D.DataSet.FindField('UDF_Length').AsFloat*D.DataSet.FindField('UDF_LinearWeight').AsFloat);end;//key-in unit price per pcs to convert into unit price per kgif SameText(editingfield,'UDF_UnitPrice_Pcs') orSameText(editingfield,'Batch') then beginD.DataSet.FindField('UDF_UnitPrice_Kg').AsFloat := (D.DataSet.FindField('UDF_UnitPrice_Pcs').AsFloat/D.DataSet.FindField('UDF_Length').AsFloat/D.DataSet.FindField('UDF_LinearWeight').AsFloat);end;//to compute the subtotal either based on unit price per pcs or per kgif (D.DataSet.FindField('UDF_Length').Value <> 0.0000) or(D.DataSet.FindField('UDF_LinearWeight').Value <> 0.000) or(D.DataSet.FindField('UDF_Qty_Pcs').Value <> 0.0000) or(D.DataSet.FindField('UDF_UnitPrice_Pcs').Value <> 0.0000) then beginD.DataSet.FindField('Qty').Value := D.DataSet.FindField('UDF_Qty_Pcs').AsFloat;D.DataSet.FindField('UnitPrice').Value := D.DataSet.FindField('UDF_UnitPrice_Pcs').AsFloat;D.DataSet.FindField('UDF_Qty_Kg').AsFloat := (D.DataSet.FindField('UDF_Length').AsFloat*D.DataSet.FindField('UDF_LinearWeight').AsFloat*D.DataSet.FindField('UDF_Qty_Pcs').AsFloat);end;FComServer := null;cdsTemp.Free;end.Formula:1. Unit price per Pcs = Unit price per Kg x Length x Linear Weight2. Unit price per Kg = Unit price per Pcs / Length / Linear Weight3. Total Weight = Length x Linear Weight x No of PcsBoth formula results are rounding up to 4 decimals. -