Connect(); $TDB->SetDatabase("taxes"); $TDB->DevMode = $DevMode; $SDB = new clsDB(); $SDB->Connect(); $SDB->SetDatabase("tracking"); $SDB->DevMode = $DevMode; $SDB2 = new clsDB(); $SDB2->Connect(); $SDB2->SetDatabase("tracking"); $SDB2->DevMode = $DevMode; $D4B2 = new mysqlDB(); $D4B2->Connect(); $D4B2->SetDatabase("vcc4"); $D4B2->DevMode = $DevMode; $D4B = new mysqlDB(); $D4B->Connect(); $D4B->SetDatabase("vcc4"); $D4B->DevMode = $DevMode; function FixThePuff() { global $TDB; global $SDB; global $D4B; global $D4B2; // Production Values $EmailTo = "cbake@livemercial.com"; $ClientID = 432; $Offers = array(1,2); $ProductIDs = array(1000011, 1000007); $TaxableStatesArray = array("CA"); $MissingPrice = 3.99; // Get all orders with missing amount $SQL = "SELECT o.orderid, o.shipping as shipping, o.total, o.tax, o.shipstate, o.shipzip, o.date_ordered, o.cid, oli.quantity FROM orders_2007 o LEFT JOIN orderlineitems_2007 oli ON o.clientid = oli.clientid AND o.orderid = oli.orderid WHERE o.clientid = '".$ClientID."' AND o.offerid IN (".implode(",", $Offers).") AND oli.productid IN (".implode(",", $ProductIDs).")"; $D4B->Execute($SQL); $TotalOrdersRepaired = $D4B->NumRows(); WHILE($ORDER = $D4B->GetRow()) { $Shipping = $ORDER->shipping; $Tax = $ORDER->tax; $Total = $ORDER->total; $OrderID = $ORDER->orderid; // Calculate Missing Money $MissingTotal += ($MissingPrice * $ORDER->quantity); // Re-calculate Tax - If Any if(in_Array($ORDER->shipstate, $TaxableStatesArray)){ // Get Zip Tax $TaxRate = $TDB->ExecuteAndReturn("SELECT sales_tax FROM tax_rates WHERE state='".$ORDER->shipstate."' AND zipcode='".$ORDER->shipzip."'"); // Get Missing Tax Amount $MissingTax = ($MissingTotal * $TaxRate); // Set New Tax Amount $NewTax = number_format(($MissingTax + $Tax),2); // Set New Total $NewTotal += $NewTax; // Set New Shipping $NewShipping += $MissingTotal; } else { $NewTotal += $MissingTotal; // Set New Total $NewShipping += $MissingTotal; // Set New Shipping $NewTax = $Tax; // Carry Over $0 Tax Value } // Update Orderlineitems Table $Update_SQL = "UPDATE orderlineitems_2007 oli SET oli.shipping = '".$NewShipping."' WHERE oli.orderid = '".$ORDER->orderid."' AND oli.clientid = '".$ClientID."' AND oli.productid IN (".implode(",", $ProductIDs).")"; // Process Query //$D4B2->Execute($Update_SQL); // Update Orders Table for each OrderID $Update_SQL = "UPDATE orders_2007 o SET shipping = '".$NewShipping."', total = '".$NewTotal."', tax = '".$NewTax."' WHERE clientid = '".$ClientID."' AND offerid IN (".implode(",", $Offers).") AND orderid = '".$ORDER->orderid."' "; // Process Query //$D4B2->Execute($Update_SQL); // Global Values For Tracking Update $GLOBAL[($ORDER->date_ordered)][($ORDER->cid)]->Shipping += $MissingTotal; $GLOBAL[($ORDER->date_ordered)][($ORDER->cid)]->Total += $MissingTotal; $GLOBAL[($ORDER->date_ordered)][($ORDER->cid)]->Tax += $NewTax; $GLOBAL[($ORDER->date_ordered)][($ORDER->cid)]->Date = $ORDER->date_ordered; $GLOBAL[($ORDER->date_ordered)][($ORDER->cid)]->CID = $ORDER->cid; } // End While - Orders Update // Update Tracking Values foreach($GLOBAL as $DATE) { foreach($DATE as $CID) { // Get Original Values $Select_SQL = "SELECT tax, shipping, total FROM orders_day WHERE clientid = '".$ClientID."' AND offerid IN (".implode(",", $Offers).") AND date = '".$CID->Date."' AND cid = '".$CID->CID."' "; // Process Query $SDB->Execute($Select_SQL); // Loop Tracking Rows WHILE($TrROW = $SDB->GetRow()) { // Set New Values $TotalShipping = ($TrROW->shipping + $CID->Shipping); $TotalTotal = ($TrROW->total + $CID->Total); $TotalTax = ($TrROW->tax + $CID->Tax); // Update Tracking row's values $Update_SQL = "UPDATE orders_day SET shipping = '".$TotalShipping."', total = '".$TotalTotal."', tax = '".$TotalTax."' WHERE date = '".$TrRow->date."' AND cid = '".$TrRow->cid." AND offerid IN (".implode(",", $Offers).") AND clientid = '".$ClientID."' AND shipping = '".$TrROW->shipping."' AND total = '".$TrROW->total."' AND tax = '".$TrROW->tax."' "; // Process Query //$SDB2->Execute($Update_SQL); } // end While TrROW } // end Foreach } // end Foreach // Send Confirmation Email $sendmail = new mime_mail; $sendmail->MsgHeader["Sender"] = $sendmail->MsgHeader["X-From"] = "orderexports@livemercial.com"; $sendmail->MsgHeader["From"] = "orderexports@livemercial.com"; $sendmail->MsgHeader["To"] = $EmailTo; $sendmail->MsgHeader["Date"] = date("r"); $sendmail->MsgHeader["Subject"] = "Pancake Puff Fix Report"; $sendmail->body = "Total Repaired Orders: ".$TotalOrdersRepaired."\n"; $sendmail->add_message($sendmail->body); $sendmail->SendMessage = 1; $sendmail->send_mail(); return $TotalRecords; } FixThePuff(); $TDB->Close(); $SDB->Close(); $D4B->Close(); $D4B2->Close(); ?>