Overview #
The Purchase Orders module streamlines the creation, management, and tracking of purchase orders sent to suppliers. It allows users to create, view, edit, and delete purchase orders, capturing key details such as supplier, project, order date, status, and financial totals (excluding and including VAT). The module supports managing order items, including quantities, costs, and VAT percentages, ensuring accurate procurement and financial tracking. It integrates with supplier and project data for efficient workflows within the software using Delphi, DevExpress, and PgDAC, with the TcxGridDBTableView for data display.
Navigate to the Purchase Orders Module #
- From the main application interface, locate the Tile Menu.
- Click on the Purchase Orders tile to open the module.
How to Filter and View Purchase Orders #
- In the Purchase Orders module, click the Open button on the main list view.
- This refreshes the purchase order list, displaying all purchase orders based on the transaction type (transTypeId2=1).
- The TcxGridDBTableView grid displays columns such as Status, Project, Supplier, Reference, Date, User, Total (Exc), Total (VAT), and Total (Inc).
- Use the grid’s built-in filtering and sorting options to refine the view (e.g., filter by Status or Date).
How to Create a Purchase Order #
- In the main list view, click the New button.
- The interface switches to the Edit view, where you can fill in the following fields:
- Status: Select from Pending, Active, Complete, or Cancelled using the TcxDBImageComboBox.
- Supplier: Choose a supplier from the dropdown list (populated via qryContactsLu, filtered for supplier contacts when transTypeId2=1).
- Project: Select a project from the dropdown list (populated via qryProjectsLu).
- Reference: Enter a unique reference for the purchase order (e.g., PO number).
- Date: Set the order date using the TcxDBDateEdit date picker.
- Note: Add any additional notes or comments in the TcxDBMemo (optional).
- Click Save to create the purchase order, triggering qryTransaction.Post and qryUpdateTotals.ExecSQL to update totals.
How to Edit a Purchase Order #
- In the main list view, double-click a purchase order row in the viwTransactions TcxGridDBTableView or right-click and select Edit from the context menu (pmTransactionList).
- The Edit view (tsEdit) opens, allowing you to modify fields (Status, Supplier, Project, Reference, Date, Note).
- Click Save to update the purchase order, which posts changes via qryTransaction and updates totals.
How to Add a Purchase Order Item #
- In the Edit view of a purchase order, locate the Transaction Items grid (viwTransactionItems) at the bottom.
- Click the Add Item button (btnAddItems) to open the lookup form (frmLookupTrans).
- A modal window appears, allowing you to select items to add, linked to the project (qryTransaction.FieldByName(‘project_id’)).
- Alternatively, click the Custom button (btnCustom) to manually append a new item row to the TcxGridDBTableView.
- Fill in the following fields for the new item in the grid:
- Description: Enter the item description (TStringField).
- Quantity: Specify the quantity (TFloatField).
- Unit: Define the unit of measure (e.g., kg, units, meters) (TStringField).
- Unit Cost: Enter the cost per unit excluding VAT (TFloatField).
- VAT %: Specify the VAT percentage (TFloatField, if applicable).
- Note: Add item-specific notes in the TMemoField (optional).
- The system automatically calculates:
- Total (Exc): Quantity × Unit Cost.
- Total (VAT): VAT amount based on VAT percentage.
- Total (Inc): Total including VAT.
- Click Save to save the item (qryTransactionItems.Post) and update invoice totals via qryUpdateTotals.
How to Delete a Purchase Order #
- In the main list view, right-click on the purchase order in the viwTransactions grid.
- Select Delete from the context menu (miDelete in pmTransactionList).
- Confirm the deletion when prompted in the MessageDlg.
- Note: If the purchase order cannot be deleted due to database constraints (e.g., foreign key issues), an error message will appear, handled in miDeleteClick.
How to Delete a Purchase Order Item #
- In the Edit view, locate the Transaction Items grid (viwTransactionItems).
- Right-click on the item row you want to delete.
- Select Delete from the context menu (dxBarButton1 in pmMenuEdit).
- Confirm the deletion when prompted.
- Note: If the item cannot be deleted, an error message is displayed via dxBarButton1Click.
Change Grid Layout #
- In the main list view, select the edge of a column header in the viwTransactions TcxGridDBTableView.
- Drag the column to reposition it or adjust its width as desired.
- To save the customized layout:
- Click the Menu button (btnMenuList) in the main list view.
- Select Save Grid Layout (miSaveGridListClick) from the dropdown (pmMenuList).
- To restore the default grid layout:
- Click the Menu button.
- Select Restore Grid Layout (miRestoreGridListClick).
Notes #
- The Purchase Orders module uses a transaction type filter (transTypeId2=1) to display purchase order records. Ensure the correct transaction type is set when accessing the module.
- Totals (Total Exc, Total VAT, Total Inc) are automatically updated when items are added or modified using the stored procedure (qryUpdateTotals).
- The Supplier dropdown is filtered to show supplier contacts (via qryContactsLu, where contact_type_id=2 for transTypeId2=1).
- The module integrates with the main application’s user (frmMain.user_id) and project data (qryProjectsLu) for seamless operation.
- Use the Copy to options (e.g., miCopyToSupplierInvoice) in the context menu (pmCopyMenu) to duplicate purchase orders to other transaction types, handled by qryCopyTransaction.