Skip to content

Instantly share code, notes, and snippets.

@xlanor
Last active July 24, 2017 08:08
Show Gist options
  • Save xlanor/58331a7668dee1c341eb0d5637b174d5 to your computer and use it in GitHub Desktop.
Save xlanor/58331a7668dee1c341eb0d5637b174d5 to your computer and use it in GitHub Desktop.
Pulling data from a CSV file and working with database mechanics.
<?php
include ('connection.php');
$csvFile = file('sales_by_biz_details.csv');
$csv = array_map('str_getcsv', $csvFile);
$headers = $csv[0];
unset($csv[0]);
$rowsWithKeys = [];
foreach ($csv as $row)
{
$newRow = [];
foreach ($headers as $k => $key)
{
$newRow[$key] = $row[$k];
}
$rowsWithKeys[] = $newRow;
}
$testarray=array();
$newarray1 = array();
$counter = 0;
foreach ($rowsWithKeys as $row)
{
$invoiceid = $row['Invoice'];
if (!array_key_exists($invoiceid, $testarray))
{
$testarray[$invoiceid]["customer_name"]= $row['Customer Name'];
$testarray[$invoiceid]["channel"]= $row['Channel'];
$testarray[$invoiceid]["awb"]= $row['AWB'];
$testarray[$invoiceid]["item"]= array(array('item_name' => $row['Item Name']));
$testarray[$invoiceid]["item"][((count ($testarray[$invoiceid]["item"])-1))]['date'] = $row['Date'];
$testarray[$invoiceid]["item"][((count ($testarray[$invoiceid]["item"])-1))]["plu"]= $row['PLU'];
$testarray[$invoiceid]["item"][((count ($testarray[$invoiceid]["item"])-1))]["unit_selling_price"]= $row['Unit Selling Price'];
$testarray[$invoiceid]["item"][((count ($testarray[$invoiceid]["item"])-1))]["invoiced_sales_value"]= $row['Invoiced Sales Value'];
$testarray[$invoiceid]["item"][((count ($testarray[$invoiceid]["item"])-1))]["sales_units"]= $row['Sales Units'];
$testarray[$invoiceid]["item"][((count ($testarray[$invoiceid]["item"])-1))]["list_price"]= $row['List Price'];
$testarray[$invoiceid]["item"][((count ($testarray[$invoiceid]["item"])-1))]["gross_sales_and_list_price"]= $row['Gross Sales and List Price'];
$testarray[$invoiceid]["item"][((count ($testarray[$invoiceid]["item"])-1))]["off_invoice_discount_from_sales"]= $row['Off Invoice Discount from Sales'];
$testarray[$invoiceid]["item"][((count ($testarray[$invoiceid]["item"])-1))]["nett_invoiced_sales"]= $row['Nett Invoiced Sales'];
$testarray[$invoiceid]["item"][((count ($testarray[$invoiceid]["item"])-1))]["cost"]= $row['Cost'];
$testarray[$invoiceid]["item"][((count ($testarray[$invoiceid]["item"])-1))]["margin"]= $row['Margin'];
$testarray[$invoiceid]["item"][((count ($testarray[$invoiceid]["item"])-1))]["line_total_weight"]= $row['Line Total Weight'];
$testarray[$invoiceid]["item"][((count ($testarray[$invoiceid]["item"])-1))]["weight_percent"]= $row['Weight %'];
$testarray[$invoiceid]["item"][((count ($testarray[$invoiceid]["item"])-1))]["delivery_cost"]= $row['Delivery Cost'];
}
else
{
$counter =count($testarray[$invoiceid]["item"]);
$testarray[$invoiceid]["item"][$counter] = array('item_name' => $row['Item Name']);
$testarray[$invoiceid]["item"][$counter]["date"] = $row['Date'];
$testarray[$invoiceid]["item"][$counter]["plu"] = $row['PLU'];
$testarray[$invoiceid]["item"][$counter]["unit_selling_price"] = $row['Unit Selling Price'];
$testarray[$invoiceid]["item"][$counter]["invoiced_sales_value"] = $row['Invoiced Sales Value'];
$testarray[$invoiceid]["item"][$counter]["sales_units"] =$row['Sales Units'];
$testarray[$invoiceid]["item"][$counter]["list_price"] = $row['List Price'];
$testarray[$invoiceid]["item"][$counter]["gross_sales_and_list_price"] = $row['Gross Sales and List Price'];
$testarray[$invoiceid]["item"][$counter]["off_invoice_discount_from_sales"] = $row['Off Invoice Discount from Sales'];
$testarray[$invoiceid]["item"][$counter]["nett_invoiced_sales"] = $row['Nett Invoiced Sales'];
$testarray[$invoiceid]["item"][$counter]["cost"] = $row['Cost'];
$testarray[$invoiceid]["item"][$counter]["margin"] = $row['Margin'];
$testarray[$invoiceid]["item"][$counter]["line_total_weight"] = $row['Line Total Weight'];
$testarray[$invoiceid]["item"][$counter]["weight_percent"] = $row['Weight %'];
$testarray[$invoiceid]["item"][$counter]["delivery_cost"] = $row['Delivery Cost'];
}
}
//dumped csv into array.
foreach($testarray as $key => $rn)
{
$chan = $rn['channel'];
$custname = $rn['customer_name'];
$awb = $rn['awb'];
foreach ($rn['item'] as $row)
{
// print_r($row);
$usp = $row['unit_selling_price'];
$salesunit = $row['sales_units'];
$sku = $row['plu'];
$itemname = $row['item_name'];
$invoicesalesval = $row['invoiced_sales_value'];
$joinq = "
SELECT a.*,b.ch_id,c.ch_name, e.p_sku,f.mec_name
FROM promotions a
INNER JOIN promotion_channels b
ON a.promo_id = b.promo_id
INNER JOIN channels c
ON b.ch_id = c.ch_id
INNER JOIN promotion_products d
ON a.promo_id = d.promo_id
INNER JOIN product e
ON d.p_id = e.p_id
INNER JOIN mechanics f
ON a.mec_id = f.mec_id
WHERE c.ch_name = :chan AND e.p_sku = :sku";
$joinx = $dbh->prepare($joinq);
$joinx->bindParam(":chan", $chan);
$joinx->bindParam(":sku", $sku);
$joinx->execute();
$test = $joinx->fetchAll();
if (!empty($test))
{
foreach($test as $testrn)
{
$mecname = $testrn['mec_name'];
$sd = $testrn['promo_sd'];
$ed =$testrn['promo_ed'];
if($testrn['promo_status']== 1)
{
$unserializedinfo = unserialize($testrn['promo_mech_info']);
//print_r($unserializedinfo);
if(array_key_exists("discount", $unserializedinfo))
{
if( count($unserializedinfo['discount']) > 1)
{ //remember to update discount to the new formulae later...
//order value more , % off..
if(array_key_exists("percent",$unserializedinfo['discount']))
{
$percent = $unserializedinfo['discount']['percent'];
$more = $unserializedinfo['discount']['ordervaluemore'];
if ($invoicesalesval > $more)
{
$claimval = (($invoicesalesval / 100) * ($percent));
//this makes sure that its only triggered if say, your invoice balance is more than the amt you are going to discount..
if ($claimval < $invoicesalesval)
{
//checks if theres already an array key.... you will need to do this if multi item...
if (!array_key_exists($key, $newarray1)) {
if ($sd == "0000-00-00") {
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]['channel'] = $chan;
$newarray1[$key]['awb'] = $awb;
$newarray1[$key]["item"] = array(array('item_name' => $itemname));
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['applied_mech'] = $mecname;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['trigger_reason'] = 'ongoing promotion';
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['claim_value'] = $claimval;
} else {
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]['channel'] = $chan;
$newarray1[$key]['awb'] = $awb;
$newarray1[$key]["item"] = array(array('item_name' => $itemname));
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['applied_mech'] = $mecname;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['trigger_reason'] = 'to be completed';
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['promotion_start_date'] = $sd;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['promotion_end_date'] = $ed;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['claim_value'] = $claimval;
}
} else
{
if ($sd == "0000-00-00")
{
$counter1 = count($newarray1[$key]["item"]);
$newarray1[$key]["item"][$counter1] = array('item_name' => $itemname);
$newarray1[$key]["item"][$counter1]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][$counter1]['applied_mech'] = $mecname;
$newarray1[$key]["item"][$counter1]['trigger_reason'] = 'ongoing promotion';
$newarray1[$key]["item"][$counter1]['claim_value'] = $claimval;
} else
{
$counter1 = count($newarray1[$key]["item"]);
$newarray1[$key]["item"][$counter1] = array('item_name' => $itemname);
$newarray1[$key]["item"][$counter1]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][$counter1]['applied_mech'] = $mecname;
$newarray1[$key]["item"][$counter1]['trigger_reason'] = 'to be completed';
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]["item"][$counter1]['promotion_start_date'] = $sd;
$newarray1[$key]["item"][$counter1]['promotion_end_date'] = $ed;
$newarray1[$key]["item"][$counter1]['claim_value'] = $claimval;
}
}
}
}
}
//ordervalue more, $ off.
else
{
$dollar = $unserializedinfo['discount']['dollar'];
$more = $unserializedinfo['discount']['ordervaluemore'];
if ($invoicesalesval > $more) {
if ($dollar < $invoicesalesval)
{
$newinvoicesalesval = $dollar;//lazy to change all var. basically $dollar is what you claim. change once finalized.
if (!array_key_exists($key, $newarray1)) {
if ($sd == "0000-00-00") {
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]['channel'] = $chan;
$newarray1[$key]['awb'] = $awb;
$newarray1[$key]["item"] = array(array('item_name' => $itemname));
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['applied_mech'] = $mecname;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['trigger_reason'] = 'ongoing promotion';
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['claim_value'] = $newinvoicesalesval;
} else {
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]['channel'] = $chan;
$newarray1[$key]['awb'] = $awb;
$newarray1[$key]["item"] = array(array('item_name' => $itemname));
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['applied_mech'] = $mecname;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['trigger_reason'] = 'to be completed';
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['promotion_start_date'] = $sd;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['promotion_end_date'] = $ed;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['claim_value'] = $newinvoicesalesval;
}
} else {
if ($sd == "0000-00-00") {
$counter1 = count($newarray1[$key]["item"]);
$newarray1[$key]["item"][$counter1] = array('item_name' => $itemname);
$newarray1[$key]["item"][$counter1]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][$counter1]['applied_mech'] = $mecname;
$newarray1[$key]["item"][$counter1]['trigger_reason'] = 'ongoing promotion';
$newarray1[$key]["item"][$counter1]['claim_value'] = $newinvoicesalesval;
} else {
$counter1 = count($newarray1[$key]["item"]);
$newarray1[$key]["item"][$counter1] = array('item_name' => $itemname);
$newarray1[$key]["item"][$counter1]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][$counter1]['applied_mech'] = $mecname;
$newarray1[$key]["item"][$counter1]['trigger_reason'] = 'to be completed';
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]["item"][$counter1]['promotion_start_date'] = $sd;
$newarray1[$key]["item"][$counter1]['promotion_end_date'] = $ed;
$newarray1[$key]["item"][$counter1]['claim_value'] = $newinvoicesalesval;
}
}
}
}
}
}
else
{
//nocondition, % off
if(array_key_exists("percent",$unserializedinfo['discount']))
{
$percent = $unserializedinfo['discount']['percent'];
$newinvoicesalesval = (($invoicesalesval/100)*($percent));
//checks if theres already an array key.... you will need to do this if multi item
if (!array_key_exists($key, $newarray1))
{
if($sd == "0000-00-00")
{
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]['channel'] = $chan;
$newarray1[$key]['awb'] = $awb;
$newarray1[$key]["item"] = array(array('item_name' => $itemname));
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['applied_mech'] = $mecname;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['trigger_reason'] = 'ongoing promotion';
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['claim_value'] = $newinvoicesalesval;
}
else
{
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]['channel'] = $chan;
$newarray1[$key]['awb'] = $awb;
$newarray1[$key]["item"] = array(array('item_name' => $itemname));
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['applied_mech'] = $mecname;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['trigger_reason'] = 'to be completed'; $newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['promotion_start_date'] = $sd;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['promotion_end_date'] = $ed;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['claim_value'] = $newinvoicesalesval;
}
}
else
{
if($sd == "0000-00-00")
{
$counter1 = count($newarray1[$key]["item"]);
$newarray1[$key]["item"][$counter1] = array('item_name' => $itemname);
$newarray1[$key]["item"][$counter1]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][$counter1]['applied_mech'] = $mecname;
$newarray1[$key]["item"][$counter1]['trigger_reason'] = 'ongoing promotion';
$newarray1[$key]["item"][$counter1]['claim_value'] = $newinvoicesalesval;
}
else
{
$counter1 = count($newarray1[$key]["item"]);
$newarray1[$key]["item"][$counter1] = array('item_name' => $itemname);
$newarray1[$key]["item"][$counter1]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][$counter1]['applied_mech'] = $mecname;
$newarray1[$key]["item"][$counter1]['trigger_reason'] = 'to be completed'; $newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]["item"][$counter1]['promotion_start_date'] = $sd;
$newarray1[$key]["item"][$counter1]['promotion_end_date'] = $ed;
$newarray1[$key]["item"][$counter1]['claim_value'] = $newinvoicesalesval;
}
}
}
// no condition, $ off.
else {
$dollar = $unserializedinfo['discount']['dollar'];
$newinvoicesalesval = $dollar;
if ($dollar < $invoicesalesval)
{
if (!array_key_exists($key, $newarray1)) {
if ($sd == "0000-00-00") {
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]['channel'] = $chan;
$newarray1[$key]['awb'] = $awb;
$newarray1[$key]["item"] = array(array('item_name' => $itemname));
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['applied_mech'] = $mecname;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['trigger_reason'] = 'ongoing promotion';
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['claim_value'] = $newinvoicesalesval;
}
else
{
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]['channel'] = $chan;
$newarray1[$key]['awb'] = $awb;
$newarray1[$key]["item"] = array(array('item_name' => $itemname));
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['applied_mech'] = $mecname;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['trigger_reason'] = 'to be completed';
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['promotion_start_date'] = $sd;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['promotion_end_date'] = $ed;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['claim_value'] = $newinvoicesalesval;
}
} else {
if ($sd == "0000-00-00") {
$counter1 = count($newarray1[$key]["item"]);
$newarray1[$key]["item"][$counter1] = array('item_name' => $itemname);
$newarray1[$key]["item"][$counter1]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][$counter1]['applied_mech'] = $mecname;
$newarray1[$key]["item"][$counter1]['trigger_reason'] = 'ongoing promotion';
$newarray1[$key]["item"][$counter1]['claim_value'] = $newinvoicesalesval;
} else {
$counter1 = count($newarray1[$key]["item"]);
$newarray1[$key]["item"][$counter1] = array('item_name' => $itemname);
$newarray1[$key]["item"][$counter1]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][$counter1]['applied_mech'] = $mecname;
$newarray1[$key]["item"][$counter1]['trigger_reason'] = 'to be completed';
$newarray1[$key]["item"][$counter1]['promotion_start_date'] = $sd;
$newarray1[$key]["item"][$counter1]['promotion_end_date'] = $ed;
$newarray1[$key]["item"][$counter1]['claim_value'] = $newinvoicesalesval;
}
}
}
}
}
}
//end discount
else if(array_key_exists("buy", $unserializedinfo))
{
$buyunit = $unserializedinfo['buy']['buy'];
$division = floor(($salesunit / $buyunit));
//if buy, if dollar, if percent, else if units..
if(array_key_exists("dollar",$unserializedinfo['buy']))
{
//for %, we will work under the assumption that...
// buy 10 get 1 off, buy 20 get 2 off, etc.
$dollaroff = $division*$usp;
if (!array_key_exists($key, $newarray1))
{
if ($sd == "0000-00-00")
{
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]['channel'] = $chan;
$newarray1[$key]['awb'] = $awb;
$newarray1[$key]["item"] = array(array('item_name' => $itemname));
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['units_sold'] = $salesunit;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['applied_mech'] = $mecname;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['trigger_reason'] = 'ongoing promotion';
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['times_applied'] = $division;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['total_units'] = $division+$salesunit;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['units_to_claim'] = $division;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['amt_to_claim'] = $dollaroff;
}
else
{
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]['channel'] = $chan;
$newarray1[$key]['awb'] = $awb;
$newarray1[$key]["item"] = array(array('item_name' => $itemname));
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['units_sold'] = $salesunit;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['applied_mech'] = $mecname;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['trigger_reason'] = 'to be completed';
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['times_applied'] = $division;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['total_units'] = $division+$salesunit;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['promotion_start_date'] = $sd;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['promotion_end_date'] = $ed;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['units_to_claim'] = $division;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['amt_to_claim'] = $dollaroff;
}
}
else
{
if ($sd == "0000-00-00")
{
$counter1 = count($newarray1[$key]["item"]);
$newarray1[$key]["item"][$counter1] = array('item_name' => $itemname);
$newarray1[$key]["item"][$counter1]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][$counter1]['units_sold'] = $salesunit;
$newarray1[$key]["item"][$counter1]['applied_mech'] = $mecname;
$newarray1[$key]["item"][$counter1]['times_applied'] = $division;
$newarray1[$key]["item"][$counter1]['total_units'] = $division+$salesunit;
$newarray1[$key]["item"][$counter1]['trigger_reason'] = 'ongoing promotion';
$newarray1[$key]["item"][$counter1]['units_to_claim'] = $division;
$newarray1[$key]["item"][$counter1]['amt_to_claim'] = $dollaroff;
}
else
{
$counter1 = count($newarray1[$key]["item"]);
$newarray1[$key]["item"][$counter1] = array('item_name' => $itemname);
$newarray1[$key]["item"][$counter1]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][$counter1]['units_sold'] = $salesunit;
$newarray1[$key]["item"][$counter1]['applied_mech'] = $mecname;
$newarray1[$key]["item"][$counter1]['times_applied'] = $division;
$newarray1[$key]["item"][$counter1]['trigger_reason'] = 'to be completed';
$newarray1[$key]["item"][$counter1]['total_units'] = $division+$salesunit;
$newarray1[$key]["item"][$counter1]['promotion_start_date'] = $sd;
$newarray1[$key]["item"][$counter1]['promotion_end_date'] = $ed;
$newarray1[$key]["item"][$counter1]['units_to_claim'] = $division;
$newarray1[$key]["item"][$counter1]['amt_to_claim'] = $dollaroff;
}
}
}
elseif(array_key_exists("percent",$unserializedinfo['buy']))
{
$percent = $unserializedinfo['buy']['percent'];
$newinvoicesalesval = (($invoicesalesval/100)*($percent));
if (!array_key_exists($key, $newarray1))
{
if ($sd == "0000-00-00")
{
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]['channel'] = $chan;
$newarray1[$key]['awb'] = $awb;
$newarray1[$key]["item"] = array(array('item_name' => $itemname));
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['units_sold'] = $salesunit;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['applied_mech'] = $mecname;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['trigger_reason'] = 'ongoing promotion';
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['amount_to_claim'] = round($newinvoicesalesval,2);
}
else
{
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]['channel'] = $chan;
$newarray1[$key]['awb'] = $awb;
$newarray1[$key]["item"] = array(array('item_name' => $itemname));
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['units_sold'] = $salesunit;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['applied_mech'] = $mecname;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['trigger_reason'] = 'to be completed';
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['promotion_start_date'] = $sd;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['promotion_end_date'] = $ed;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['amount_to_claim'] = round($newinvoicesalesval,2);
}
}
else
{
if ($sd == "0000-00-00")
{
$counter1 = count($newarray1[$key]["item"]);
$newarray1[$key]["item"][$counter1] = array('item_name' => $itemname);
$newarray1[$key]["item"][$counter1]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][$counter1]['units_sold'] = $salesunit;
$newarray1[$key]["item"][$counter1]['applied_mech'] = $mecname;
$newarray1[$key]["item"][$counter1]['trigger_reason'] = 'ongoing promotion';
$newarray1[$key]["item"][$counter1]['amount_to_claim'] = round($newinvoicesalesval,2);
}
else
{
$counter1 = count($newarray1[$key]["item"]);
$newarray1[$key]["item"][$counter1] = array('item_name' => $itemname);
$newarray1[$key]["item"][$counter1]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][$counter1]['units_sold'] = $salesunit;
$newarray1[$key]["item"][$counter1]['applied_mech'] = $mecname;
$newarray1[$key]["item"][$counter1]['trigger_reason'] = 'to be completed';
$newarray1[$key]["item"][$counter1]['promotion_start_date'] = $sd;
$newarray1[$key]["item"][$counter1]['promotion_end_date'] = $ed;
$newarray1[$key]["item"][$counter1]['amount_to_claim'] = round($newinvoicesalesval,2);
}
}
}
else
{
$buyamt = $unserializedinfo['buy']['buy'];
$perunitfree = $unserializedinfo['buy']['unit'];
$division =$salesunit/$buyamt;
$freeunit = floor($division * $perunitfree);
if (!array_key_exists($key, $newarray1))
{
if ($sd == "0000-00-00")
{
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]['channel'] = $chan;
$newarray1[$key]['awb'] = $awb;
$newarray1[$key]["item"] = array(array('item_name' => $itemname));
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['units_sold'] = $salesunit;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['applied_mech'] = $mecname;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['trigger_reason'] = 'ongoing promotion';
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['units_to_claim'] = $freeunit;
}
else
{
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]['channel'] = $chan;
$newarray1[$key]['awb'] = $awb;
$newarray1[$key]["item"] = array(array('item_name' => $itemname));
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['units_sold'] = $salesunit;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['applied_mech'] = $mecname;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['trigger_reason'] = 'to be completed';
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['promotion_start_date'] = $sd;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['promotion_end_date'] = $ed;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['units_to_claim'] = $freeunit;
}
}
else
{
if ($sd == "0000-00-00")
{
$counter1 = count($newarray1[$key]["item"]);
$newarray1[$key]["item"][$counter1] = array('item_name' => $itemname);
$newarray1[$key]["item"][$counter1]['units_sold'] = $salesunit;
$newarray1[$key]["item"][$counter1]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][$counter1]['applied_mech'] = $mecname;
$newarray1[$key]["item"][$counter1]['trigger_reason'] = 'ongoing promotion';
$newarray1[$key]["item"][$counter1]['units_to_claim'] = $freeunit;
}
else
{
$counter1 = count($newarray1[$key]["item"]);
$newarray1[$key]["item"][$counter1] = array('item_name' => $itemname);
$newarray1[$key]["item"][$counter1]['units_sold'] = $salesunit;
$newarray1[$key]["item"][$counter1]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][$counter1]['applied_mech'] = $mecname;
$newarray1[$key]["item"][$counter1]['trigger_reason'] = 'to be completed';
$newarray1[$key]["item"][$counter1]['promotion_start_date'] = $sd;
$newarray1[$key]["item"][$counter1]['promotion_end_date'] = $ed;
$newarray1[$key]["item"][$counter1]['units_to_claim'] = $freeunit;
}
}
}
}
else
{
$pid = $unserializedinfo['cpu']['pid'];
$producname = "SELECT * FROM product WHERE p_id = :pid";
$producnamex = $dbh->prepare($producname);
$producnamex->bindParam(':pid',$pid);
$producnamex->execute();
$prodsk = $producnamex->fetch();
$percent = $unserializedinfo['cpu']['percent'];
$definedprice = $unserializedinfo['cpu']['price'];
$discountval = $definedprice/100*$percent;
if (!array_key_exists($key, $newarray1))
{
if ($sd == "0000-00-00")
{
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]['channel'] = $chan;
$newarray1[$key]['awb'] = $awb;
$newarray1[$key]["item"] = array(array('item_name' => $itemname));
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['units_sold'] = $salesunit;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['applied_mech'] = $mecname;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['trigger_reason'] = 'ongoing promotion';
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['affected_sku'] = $prodsk['p_sku'];
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['discounted_value']= $discountval;
}
else
{
$newarray1[$key]['customer_name'] = $custname;
$newarray1[$key]['channel'] = $chan;
$newarray1[$key]['awb'] = $awb;
$newarray1[$key]["item"] = array(array('item_name' => $itemname));
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['units_sold'] = $salesunit;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['applied_mech'] = $mecname;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['trigger_reason'] = 'to be completed';
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['promotion_start_date'] = $sd;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['promotion_end_date'] = $ed;
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['affected_sku'] = $prodsk['p_sku'];
$newarray1[$key]["item"][((count($newarray1[$key]["item"]) - 1))]['discounted_value']= $discountval;
}
}
else
{
if ($sd == "0000-00-00")
{
$counter1 = count($newarray1[$key]["item"]);
$newarray1[$key]["item"][$counter1] = array('item_name' => $itemname);
$newarray1[$key]["item"][$counter1]['units_sold'] = $salesunit;
$newarray1[$key]["item"][$counter1]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][$counter1]['applied_mech'] = $mecname;
$newarray1[$key]["item"][$counter1]['trigger_reason'] = 'ongoing promotion';
$newarray1[$key]["item"][$counter1]['affected_sku'] = $prodsk['p_sku'];
$newarray1[$key]["item"][$counter1]['discounted_value']= $discountval;
}
else
{
$counter1 = count($newarray1[$key]["item"]);
$newarray1[$key]["item"][$counter1] = array('item_name' => $itemname);
$newarray1[$key]["item"][$counter1]['units_sold'] = $salesunit;
$newarray1[$key]["item"][$counter1]['old_invoiced_sales'] = $invoicesalesval;
$newarray1[$key]["item"][$counter1]['applied_mech'] = $mecname;
$newarray1[$key]["item"][$counter1]['trigger_reason'] = 'to be completed';
$newarray1[$key]["item"][$counter1]['promotion_start_date'] = $sd;
$newarray1[$key]["item"][$counter1]['affected_sku'] = $prodsk['p_sku'];
$newarray1[$key]["item"][$counter1]['discounted_value']= $discountval;
}
}
}
}
//
}
}
}
}
print_r($newarray1);
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment