Files
HotLunches/suppliers-copy.php
2026-10-19 15:22:52 -07:00

141 lines
5.4 KiB
PHP

<?php
function copySuppliers($src_school, $dest_school) {
$school_num = $dest_school;
$GLOBALS['school_num'] = $dest_school;
$moduleName = "suppliers-copy.php";
// startLog($moduleName);
$dpath = sprintf("%08d",$school_num);
$imagedir = "$cdir/files/$dpath/product_images";
$suppliers = db_query("SELECT * FROM suppliers WHERE school_num = $src_school");
while ($row = db_fetch_array($suppliers)) {
$source_supplier = $row['record_num'];
$supplier = $row;
$source_school = $supplier['school_num'];
$GLOBALS['source_school'] = $supplier['school_num'];
$image_source = sprintf("%08d",$school_num);
$image_source = "$cdir/files/$image_source/product_images";
$supplier['school_num'] = $school_num;
extract($supplier, EXTR_OVERWRITE);
$source_supplier_num = $source_supplier;
$GLOBALS['source_supplier'] = $row['record_num'];
$GLOBALS['source_supplier_num'] = $source_supplier;
foreach ($row as $key => $value) {
$GLOBALS[$key] = $value;
}
unset($account_number);
unset($discount_rate);
unset($order_notes);
unset($notes);
unset($record_num);
unset($GLOBALS['account_number']);
unset($GLOBALS['discount_rate']);
unset($GLOBALS['order_notes']);
unset($GLOBALS['notes']);
unset($GLOBALS['record_num']);
$copy_flag = 'N';
$GLOBALS['copy_flag'] = 'N';
$supplier_table = new Table("suppliers");
// Check if supplier has already been copied
$results = db_query("SELECT * FROM suppliers WHERE school_num = $school_num AND source_supplier_num = $source_supplier");
if (db_num_rows($results) == 0) {
$query = $supplier_table->BuildInsert();
db_query($query);
$supplier_num = db_insert_id();
}
else {
$row = db_fetch_assoc($results);
$record_num = $row['record_num'];
$query = $supplier_table->BuildUpdate();
$supplier_num = $record_num;
}
$GLOBALS['supplier_num'] = $supplier_num;
// Get all the supplier products
$query = "SELECT * FROM supplier_products " .
"WHERE school_num = $supplier_school_num " .
"AND supplier_num = $source_supplier " .
"AND status = 'Active' " .
"ORDER BY product_type ASC,sequence,product_name";
// writeLog("query: $query\n");
$products = db_query($query);
exit();
if (db_num_rows($products)) {
$supplier_products = new Table("supplier_products");
$count = 0;
while ($row = db_fetch_assoc($products)) {
$row['school_num'] = $supplier_school_num;
$row['supplier_num'] = $supplier_num;
extract($row);
$entry = $row;
foreach ($row as $key => $value) {
$GLOBALS[$key] = $value;
$entry[$key] = $value;
}
$source_product_num = $record_num;
$GLOBALS['source_product_num'] = $record_num;
$entry['source_product_num'] = $record_num;
// Check if the product already exists
$results = db_query("SELECT * FROM supplier_products WHERE school_num = $supplier_school_num AND source_product_num = $record_num");
if (db_num_rows($results) == 0) {
$query = $supplier_products->BuildInsert($entry);
db_query($query);
$record_num = db_insert_id();
}
else {
$row = db_fetch_assoc($results);
$record_num = $row['record_num'];
$entry['record_num'] = $row['record_num'];
$query = $supplier_products->BuildUpdate($entry);
db_query($query);
db_query("UPDATE supplier_products SET status = 'Inactive' WHERE WHERE school_num = $supplier_school_num AND source_product_num = $record_num AND record_num != $record_num");
}
// Handle product images
if (strlen($image) && file_exists("$image_source/$image")) {
if (file_exists("$imagedir/$image")) unlink("$imagedir/$image");
copy("$image_source/$image","$imagedir/$image");
}
// Handle combo components
if ($product_type == 'Combo') {
$primary_product_num = $record_num;
db_query("DELETE FROM supplier_products_combos WHERE school_num = $supplier_school_num AND primary_product_num = $record_num");
// Get set of componenets from source school
$components = db_query("SELECT * FROM supplier_products_combos WHERE school_num = $supplier_school_num AND primary_product_num = $source_product_num");
while ($row = db_fetch_assoc($components)) {
$spnum = $row['component_product_num'];
$pnum = db_getVal("SELECT record_num FROM supplier_products WHERE school_num = $supplier_school_num AND status = 'Active' AND source_product_num = $spnum ORDER BY record_num DESC LIMIT 0,1");
if ($pnum && $pnum > 0) db_query("INSERT INTO supplier_products_combos VALUES($supplier_school_num, $primary_product_num, $pnum)");
}
}
$count++;
}
}
echo(" - " . $supplier['supplier_name'] . ": $count<br>\n");
}
}
?>