Skip to content

Commit

Permalink
cart summary price
Browse files Browse the repository at this point in the history
  • Loading branch information
TMuthulakshmi committed Dec 27, 2022
1 parent 38eca80 commit 598b61c
Showing 1 changed file with 113 additions and 84 deletions.
197 changes: 113 additions & 84 deletions app/Controllers/Api/Cart/Index.php
Expand Up @@ -51,96 +51,124 @@ function index(){
$result = $this->cart->getCart('all', ['cart', 'event', 'barn', 'stall', 'product', 'tax'], $condition);

if($result){
$setting = getSettings();
$cartreservedtime = $cart->getReserved($setting['cartreservedtime']);
$timer = $cartreservedtime ? $cartreservedtime : '';
$count = count($result);
$event_id = array_unique(array_column($result, 'event_id'))[0];
$event_name = array_unique(array_column($result, 'eventname'))[0];
$event_location = array_unique(array_column($result, 'eventlocation'))[0];
$event_description = array_unique(array_column($result, 'eventdescription'))[0];
$cleaning_fee = array_unique(array_column($result, 'eventcleaningfee'))[0];
$check_in = formatdate(array_unique(array_column($result, 'check_in'))[0], 1);
$check_out = formatdate(array_unique(array_column($result, 'check_out'))[0], 1);
$start = strtotime(array_unique(array_column($result, 'check_in'))[0]);
$end = strtotime(array_unique(array_column($result, 'check_out'))[0]);
$daydiff = ceil(abs($start - $end) / 86400);
$interval = $daydiff==0 ? 1 : $daydiff;
$type = array_unique(array_column($result, 'type'))[0];
$tax = isset($result[0]['tax']['tax_price']) ? $result[0]['tax']['tax_price'] :'0';
$setting = getSettings();
$cartreservedtime = $cart->getReserved($setting['cartreservedtime']);
$timer = $cartreservedtime ? strtotime($cartreservedtime) : '';
$count = count($result);

$event_id = array_unique(array_column($result, 'event_id'))[0];
$event_name = array_unique(array_column($result, 'eventname'))[0];
$event_location = array_unique(array_column($result, 'eventlocation'))[0];
$event_description = array_unique(array_column($result, 'eventdescription'))[0];
$cleaning_fee = array_unique(array_column($result, 'eventcleaningfee'))[0];
$check_in = formatdate(array_unique(array_column($result, 'check_in'))[0], 1);
$check_out = formatdate(array_unique(array_column($result, 'check_out'))[0], 1);
$start = strtotime(array_unique(array_column($result, 'check_in'))[0]);
$end = strtotime(array_unique(array_column($result, 'check_out'))[0]);
$daydiff = ceil(abs($start - $end) / 86400);
$interval = $daydiff==0 ? 1 : $daydiff;
$type = array_unique(array_column($result, 'type'))[0];
$tax = isset($result[0]['tax']['tax_price']) ? $result[0]['tax']['tax_price'] :'0';

$barnstall = $rvbarnstall = $feed = $shaving = [];
$price = 0;

foreach ($result as $res) {
$singleprice = $res['price'];

if($res['flag']=='1' || $res['flag']=='2'){
$singlechargingid = $res['chargingid'];
$singlepricetype = $res['price_type'];
$barnstall = $rvbarnstall = $feed = $shaving = [];
$price = 0;

foreach ($result as $res) {
$singleprice = $res['price'];

if($res['flag']=='1' || $res['flag']=='2'){
$singlechargingid = $res['chargingid'];
$singlepricetype = $res['price_type'];

if($singlepricetype==0){
$intervalday = $interval;
$intervalday = ($intervalday%7==0) ? ($intervalday/7) : $intervalday;
$intervalday = ($intervalday%30==0) ? ($intervalday/30) : $intervalday;
if($singlechargingid=='4') $intervalday = 1;

$singletotal = $singlechargingid=='4' ? $singleprice : $singleprice * $intervalday;
}else{
$intervalday = $interval;
$intervalcalc = $interval;

if($singlepricetype==0){
$intervalday = $interval;
$intervalday = ($intervalday%7==0) ? ($intervalday/7) : $intervalday;
$intervalday = ($intervalday%30==0) ? ($intervalday/30) : $intervalday;
if($singlechargingid=='4') $intervalday = 1;
if(in_array($singlepricetype, ['1', '2', '3'])){
$singleprice = 0;
$singletotal = 0;
$mwnpricelist = explode(',', $res['mwn_price']);

$mwnprice = $mwninterval = $mwntotal = [0, 0, 0];

$monthcalc = intdiv($intervalcalc, 30);
if($monthcalc > 0){
$mwnprice[0] = $mwnpricelist[0];
$mwninterval[0] = $monthcalc;
$mwntotal[0] = $mwnprice[0] * $mwninterval[0];
$singletotal += $mwntotal[0];
$intervalcalc = $intervalcalc - (30 * $monthcalc);
}

$singletotal = $singlechargingid=='4' ? $singleprice : $singleprice * $intervalday;
}else{
$intervalday = $interval;
if($singlepricetype=='2') $intervalday = ceil($intervalday/7);
elseif($singlepricetype=='3') $intervalday = ceil($intervalday/30);
elseif($singlepricetype=='4') $intervalday = 1;
elseif($singlepricetype=='5') $intervalday = 1;
$weekcalc = intdiv($intervalcalc, 7);
if($weekcalc > 0){
$mwnprice[1] = $mwnpricelist[1];
$mwninterval[1] = $weekcalc;
$mwntotal[1] = $mwnprice[1] * $mwninterval[1];
$singletotal += $mwntotal[1];
$intervalcalc = $intervalcalc - (7 * $weekcalc);
}

if($singlepricetype=='1') $singletotal = $singleprice * $intervalday;
elseif($singlepricetype=='2') $singletotal = $singleprice * $intervalday;
elseif($singlepricetype=='3') $singletotal = $singleprice * $intervalday;
elseif($singlepricetype=='4') $singletotal = $singleprice;
elseif($singlepricetype=='5') $singletotal = $singleprice;
if($intervalcalc > 0){
$mwnprice[2] = $mwnpricelist[2];
$mwninterval[2] = $intervalcalc;
$mwntotal[2] = $mwnprice[2] * $mwninterval[2];
$singletotal += $mwntotal[2];
}
}else{
$intervalday = 1;
$singletotal = $singleprice;
}

$barnrvdata = [
'barn_id' => $res['barn_id'],
'barn_name' => $res['barnname'],
'stall_id' => $res['stall_id'],
'stall_name' => $res['stallname'],
'subscriptionprice' => $res['subscription_price'],
'price' => $singleprice,
'pricetype' => $singlepricetype,
'chargingid' => $singlechargingid,
'interval' => $interval,
'intervalday' => $intervalday,
'total' => $singletotal
];

if($res['flag']=='1') $barnstall[] = $barnrvdata;
elseif($res['flag']=='2') $rvbarnstall[] = $barnrvdata;

$price += $singletotal;
}else if($res['flag']=='3' || $res['flag']=='4'){
$singlequantity = $res['quantity'];
$singletotal = $singleprice * $singlequantity;

$feedshavingdata = [
'product_id' => $res['product_id'],
'product_name' => $res['productname'],
'price' => $singleprice,
'quantity' => $singlequantity,
'total' => $singletotal
];

if($res['flag']=='3') $feed[] = $feedshavingdata;
elseif($res['flag']=='4') $shaving[] = $feedshavingdata;

$price += $singletotal;
}

$barnrvdata = [
'barn_id' => $res['barn_id'],
'barn_name' => $res['barnname'],
'stall_id' => $res['stall_id'],
'stall_name' => $res['stallname'],
'subscriptionprice' => $res['subscription_price'],
'price' => $singleprice,
'pricetype' => $singlepricetype,
'chargingid' => $singlechargingid,
'interval' => $interval,
'intervalday' => $intervalday,
'total' => $singletotal,
'mwn_price' => isset($mwnprice) ? $mwnprice : '',
'mwn_interval' => isset($mwninterval) ? $mwninterval : '0',
'mwn_total' => isset($mwntotal) ? $mwntotal : '0',
];

if($res['flag']=='1') $barnstall[] = $barnrvdata;
elseif($res['flag']=='2') $rvbarnstall[] = $barnrvdata;

$price += $singletotal;
}else if($res['flag']=='3' || $res['flag']=='4'){
$singlequantity = $res['quantity'];
$singletotal = $singleprice * $singlequantity;

$feedshavingdata = [
'product_id' => $res['product_id'],
'product_name' => $res['productname'],
'price' => $singleprice,
'quantity' => $singlequantity,
'total' => $singletotal
];

if($res['flag']=='3') $feed[] = $feedshavingdata;
elseif($res['flag']=='4') $shaving[] = $feedshavingdata;

$price += $singletotal;
}

}

$transactionfee = number_format((($setting['transactionfee'] / 100) * $price), 2);
$totaldue = $transactionfee+$count;
$barnstallcolumn = array_column($barnstall, 'barn_id');
array_multisort($barnstallcolumn, SORT_ASC, $barnstall);
$rvbarnstallcolumn = array_column($rvbarnstall, 'barn_id');
Expand All @@ -149,15 +177,15 @@ function index(){
array_multisort($feedcolumn, SORT_ASC, $feed);
$shavingcolumn = array_column($shaving, 'product_id');
array_multisort($shavingcolumn, SORT_ASC, $shaving);

$resultdata = [
'event_id' => $event_id,
'event_name' => $event_name,
'event_tax' => $tax,
'event_location' => $event_location,
'event_description' => $event_description,
'cleaning_fee' => $cleaning_fee,
'transactionfee' => $transactionfee,
'totaldue' => $totaldue,
'transactionfee' => $transactionfee,
'barnstall' => $barnstall,
'rvbarnstall' => $rvbarnstall,
'feed' => $feed,
Expand All @@ -168,7 +196,7 @@ function index(){
'price' => $price,
'type' => $type,
'timer' => $timer,
'count' => $count,
'count' => $count
];

if(count($result)>0){
Expand All @@ -185,6 +213,7 @@ function index(){
'message' => $json[1],
'result' => $json[2],
]);

die();
}
}
Expand Down

0 comments on commit 598b61c

Please sign in to comment.