Fix this PHP code for 1,500 points My php code below is fully functional, but at
ID: 642751 • Letter: F
Question
Fix this PHP code for 1,500 points
My php code below is fully functional, but at the bottom of it there is a globals function
Please Remove the globals function without breaking the program
our teacher said we are not allowed to use the globals function for this class.
< ?php
$orderId = "";
$itemId = "";
$qtyOnHand = 0;
$qtyRequested = 0;
$qtyShipped = 0;
$qtyBackOrdered = 0;
$message = "";
$fship = null; ///
$fbo = null; ///
printf(" Enter the order id or (0) exits program: " );
fscanf(STDIN, "%s", $orderId);
while($orderId != "0")
{
printf(" Enter the item id or (0) exit order: " );
fscanf(STDIN, "%s", $itemId);
while($itemId != "0")
{
printf(" Enter Qty On Hand: ");
fscanf(STDIN, "%s", $qtyOnHand);
printf(" Enter Qty Requested: ");
fscanf(STDIN, "%s", $qtyRequested);
DoCalcs($qtyOnHand,$qtyRequested, $qtyShipped, $qtyBackOrdered, $message);
printf($message); ///
PrepFiles($fship, $fbo); ///
WriteFiles($qtyOnHand, $qtyRequested, $qtyShipped, $qtyBackOrdered, $message); ///
printf(" Enter the item id or (0) exit order: " );
fscanf(STDIN, "%s", $itemId);
}
printf(" Enter the order id or (0) exits program: " );
fscanf(STDIN, "%s", $orderId);
}
fclose($fship);
fclose($fbo);
//fscanf(STDIN, "%s", $buster);
// end mainline
function PrepFiles(&$fship, &$fbo)
{
printf(" PrepFiles");
$fship = fopen("shipped.txt", "w") or die("no shipped for you");
fprintf($fship, " SHIPPED ");
fprintf($fship, " Order Id Item Id Qty Shipped Message ");
$fbo = fopen("backorder.txt", "w") or die("no shipped for you");
fprintf($fbo, " BACK ORDER ");
fprintf($fbo, " Order Id Item Id Qty Back Ordered ");
}
function DoCalcs($qtyOnHand,$qtyRequested, &$qtyShipped, &$qtyBackOrdered, &$message)
{
printf(" DoCalcs "); ///
if($qtyRequested <= $qtyOnHand) {
$qtyShipped = $qtyRequested;
$qtyBackordered = 0;
$message = "Fully Filled";
} else {
if($qtyOnHand !=0)
{
$qtyShipped = $qtyOnHand;
$qtyBackOrdered = $qtyRequested - $qtyOnHand;
$message = "Partially Filled";
} else {
$qtyShipped = 0;
$qtyBackOrdered = $qtyRequested;
$message = "Out of Stock";
}
} }
function WriteFiles($qtyOnHand,$qtyRequested, &$qtyShipped, &$qtyBackOrdered, &$message) {
global $fship, $fbo, $orderId, $itemId; ///
printf(" WriteFiles "); ///
fprintf($fship, "$orderId $itemId $qtyShipped $message "); ///
fprintf($fbo, "$orderId $itemId $qtyBackOrdered ");
}
?>
Explanation / Answer
<?php
// mainline
// input vars
$orderId = "";
$itemId = "";
$qtyOnHand = 0;
$qtyRequested = 0;
// calc vars
$qtyShipped = 0;
$qtyBackOrdered = 0;
$message = "";
//PrepFiles($fship, $fbo);
printf(" Enter the order id or (0) exits program: " );
fscanf(STDIN, "%s", $orderId);
while($orderId != "0")
{
printf(" Enter the item id or (0) exit order: " );
fscanf(STDIN, "%s", $itemId);
while($itemId != "0")
{
printf(" Enter Qty On Hand: ");
fscanf(STDIN, "%s", $qtyOnHand);
printf(" Enter Qty Requested: ");
fscanf(STDIN, "%s", $qtyRequested);
DoCalcs($qtyOnHand,$qtyRequested, $qtyShipped, $qtyBackOrdered, $message);
//WriteFiles();
printf(" Enter the item id or (0) exit order: " );
fscanf(STDIN, "%s", $itemId);
}
printf(" Enter the order id or (0) exits program: " );
fscanf(STDIN, "%s", $orderId);
}
fclose($fship);
fclose($fbo);
//fscanf(STDIN, "%s", $buster);
// end mainline
function PrepFiles(&$fship, &$fbo)
{
printf(" PrepFiles");
$fship = fopen("shipped.txt", "w") or die("no shipped for you");
fprintf($fship, " SHIPPED ");
fprintf($fship, " Order Id Item Id Qty Shipped Message ");
$fbo = fopen("backorder.txt", "w") or die("no shipped for you");
fprintf($fbo, " BACK ORDER ");
fprintf($fbo, " Order Id Item Id Qty Back Ordered ");
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.