listProducts($products);
// query with filter
echo ' -> get all products with a purchase cost of at least 1000' . "\n";
$filter = new DFC(ProductModel::FIELD_PURCHASE_COST, 1000, DFC::NOT | DFC::SMALLER);
$products = ProductModel::findByFilter($db, $filter, true, $sort);
listProducts($products);
echo ' -> get all products with a purchase cost smallther than 1000 and the description containg Computer' . "\n";
$filter = array(new DFC(ProductModel::FIELD_PURCHASE_COST, 1000, DFC::SMALLER), new DFC(ProductModel::FIELD_DESCRIPTION, 'Computer', DFC::CONTAINS));
$products = ProductModel::findByFilter($db, $filter);
listProducts($products);
// query with SQL
$sql = "SELECT * FROM PRODUCT WHERE DESCRIPTION LIKE '%Sound%'";
echo ' -> get by SQL: ' . $sql . "\n";
$products = ProductModel::findBySql($db, $sql);
listProducts($products);
// insert new product
$product = new ProductModel();
$product->setProductId(123)->setManufacturerId(123)->setProductCode('HW')->setPurchaseCost(1234567890)->setQuantityOnHand(1)->setMarkup(1234567891)->setAvailable('TRUE')->setDescription('Test Product');
$product->insertIntoDatabase($db);
// update product
$product->setPurchaseCost(100);
$product->setMarkup(120);
$product->setQuantityOnHand(200);
// get changed fields
var_dump($product->getFieldsValuesChanged());
$product->updateToDatabase($db);
// delete product
$product->deleteFromDatabase($db);
// dom functions
echo $product->toDOM()->saveXML();
var_dump(ProductModel::fromDOMDocument($product->toDOM()));