<?php
namespace OfficeBrain\CustomBundle\OrderBundle\Manager\Extended;
use OfficeBrain\Bundle\OrderBundle\Manager\AbstractManager\OrderAbstract;
use JMS\Serializer\SerializationContext;
use OfficeBrain\Bundle\UserBundle\Entity\ContactBook;
use OfficeBrain\Bundle\OrderBundle\Manager\Extended\OrderRegisteredExtended as BaseOrderRegisteredExtended;

class OrderRegisteredExtended extends BaseOrderRegisteredExtended
{
	protected $jmsSerializer;
	
	/**
	 * @author Employee Id: 5497
	 * OB eCommerce Product - Order
	 * Initialize the required variable on class load
	 */
	public function __construct($entityManager, $request, $sessionManager,$productDetailManager, $userDetailManager, $emailManager, $twigManager, $userContactBookManager,$commonLibraryManager, $coreManager,$productApi, $serviceRuleApi,$paginatorManager,$xmlPath,$jmsSerializer, $twigExtension, $promoCoupon, $couponUsers)
	{
		parent::__construct($entityManager, $request, $sessionManager, $productDetailManager, $userDetailManager, $emailManager, $twigManager,$userContactBookManager, $commonLibraryManager, $coreManager,$productApi, $serviceRuleApi,$paginatorManager,$xmlPath,$jmsSerializer, $twigExtension);
		$this->jmsSerializer = $jmsSerializer;
		$this->xmlPath = $xmlPath;
		$this->currentCulCode = substr($this->cultureCode, strpos($this->cultureCode, "_") + 1);
		
		$this->promoCoupon = $promoCoupon;
		$this->couponUsers = $couponUsers;
		
		$this->orderMasterRepositoryManager = $this->entityManager->getRepository('OfficeBrainCustomBundleOrderBundle:OrderMaster');
		$this->orderMasterRepositoryManager->setProjectSetting($this->projectSetting);
		$this->orderMasterRepositoryManager->setPaginatorService($this->paginatorManager);
	}
	
	/**
	 * @author Employee Id: 4248
	 * OB eCommerce Product - AddToCart
	 * To set the cart product into the session
	 */
	public function setAddToCart()
	{
		
		$productId = $this->request->get('product_id');
		$productSlug = $this->request->get('product_slug');
		$cultureProductId = $this->request->get('culture_product_id');
		$orderType = $this->request->get('order_type');
		$data['product_data'] = $productData = $this->request->request->all();
		$productData['order_type']=$orderType;
		if ($this->configurationRule['checkout_bypass']['status'] == 1){
			$this->deleteAllCartList();
		}
		
		$pDetail = $this->productDetailManager->getProductDetailById($productId,$this->cultureCode);
		$pstatus = $pDetail[$productId]['currency_for_other_country'];
		$productCountryDetail = implode(",", array_keys($pstatus));
		$productDetailConfiguration = serialize($productData);
		if($orderType == 'sample') {
			$data['product'] = $pDetail[$productId];
			if($this->userId > 0) {
				$userObj = $this->getUserDetail($this->userId, 'register');
				$data['user'] = $userObj;
			}
			
			if($data['product_data']['extra_color'] == 'null'){
				if(isset($data['product_data']['color']) && count($data['product_data']['color'])>0) {
					foreach($data['product_data']['color'] as $id=>$val) {
						$id = explode(':',$id);
						foreach($data['product']['attributes'] as $key=>$vals) {
							if($vals['id'] == $data['product_data']['color_attr_id']) {
								foreach($vals['values'] as $cid=>$cname) {
									if(isset($id[1]) && $id[1] == $cid) {
										$data['product_data']['main_color'][] =  $cname;
									}
								}
							}
						}
					}
				}
			}
			else {
				$data['product_data']['extra_color'] = $this->getExtraColorArray($data['product_data']['extra_color'],$data['product']['attributes']);
			}

			$data['product_data']['shipping_user'] = $this->userContactBookManager->getSingleContactBook($data['product_data']['shipping_method']['shipping_detail'][0]['selected_address_id']);
			$data['product_data']['onHandDate'] = $data['product_data']['shipping_method']['shipping_detail'][0]['ship_handdate'];
			//echo $data['product_data']['shipping_user']->getStateId();
			//echo $data['product_data']['shipping_user']->getCountryId();
			//var_dump($data['product_data']['shipping_user']);
			$toEmail = '';
			$sampleOrderDetailHTML = $this->twigManager->render ( 'OfficeBrainOrderBundle:Order:sampleOrderEmail.html.twig', $data);
			$templateParams = array('sample_order_mail_template' => $sampleOrderDetailHTML);
			//echo $sampleOrderDetailHTML; die;
			$eventKey = 'sample_order_email';
			$message = $this->emailManager->sendMail($eventKey, $toEmail, $templateParams);
		}
		else {
			$this->preCartRepositoryManager->addToCart($productId, $cultureProductId, $productSlug, $productDetailConfiguration,$productCountryDetail);
		}
		return 'SUCCESS';
	}
	
	public function getCartList()
	{
		$this->totalProduct = $this->getTotalCount();
		if ($this->totalProduct) {
			$cartListArray = $this->getCart();
	
			$aryCartList=array();
			if(count($this->productDataArray)>0){
				$aryCartList = $this->productDataArray;
			}
			
			return $this->prepareCartList($aryCartList, $cartListArray);
		}
	}
	
	public function prepareCartList($inputProductList, $apiProductArray)
	{
		$validateCouponCode = '';
		$dataArray =array();
		$count=0;
		$getCouponUsers = $this->couponUsers->findActiveUserRedeemCoupon();
		if (count($getCouponUsers) == 1) {
			$validateCouponCode = $this->promoCoupon->validateCouponCode($getCouponUsers->getPromoCouponId()->getCouponName(),false);
		}
		
		foreach ($apiProductArray as $key=>$data) {
			$dataArray[$count]['product_id'] =	$data['product_id'];
			$dataArray[$count]['feature_details'] =	$data['feature_details'];
			$dataArray[$count]['free_shipping'] =	$data['free_shipping'];
			$dataArray[$count]['is_deleted'] =	$data['is_deleted'];
			$dataArray[$count]['culture_product_id'] = $data['culture_product_id'];
			$dataArray[$count]['product_slug'] = $data['basic_information']['slug'];
			$dataArray[$count]['active'] = $data['basic_information']['active'];
			$dataArray[$count]['product_image'] = $data['basic_information']['default_image_url'];
			$dataArray[$count]['product_image_thumb'] = $data['basic_information']['default_image_thumb_url'];
			$dataArray[$count]['sku_code'] = $data['basic_information']['sku_number'];
			$dataArray[$count]['product_name'] = $data['basic_information']['title'];
			$dataArray[$count]['product_description'] = $data['basic_information']['description'];
			$dataArray[$count]['price_type'] = $data['price_type'];
			$dataArray[$count]['pricing'] = $data['pricing'];			
			$dataArray[$count]['variation_pricing'] = $data['variation_pricing'];
			$dataArray[$count]['variation_pricing_for_other_country'] = $data['variation_pricing_for_other_country'];			
			$dataArray[$count]['country_available'] = $data['country_available'];
			$dataArray[$count]['variation_pricing_country_available'] = $data['variation_pricing_country_available'];
			$dataArray[$count]['currency'] = $data['currency']['currency'];
			$dataArray[$count]['currency_symbol'] = $data['currency']['symbol'];
			$dataArray[$count]['imprint_position_and_methods'] = $data['imprint_position_and_methods'];
			$dataArray[$count]['price_unit'] = $data['price_unit'];
			$dataArray[$count]['is_delay_in_onhand_date'] = 0;
			$dataArray[$count]['blank_pricing'] = $data['blank_pricing'];
			$dataArray[$count]['decorative_pricing'] = $data['decorative_pricing'];
			$dataArray[$count]['special_pricing'] = $data['special_pricing'];
				
			if(array_key_exists($key, $inputProductList) && $inputProductList[$key]!='') {
				$attributeIdArray = $this->getattributeIdOrder($inputProductList[$key],$data);
				$dataArray[$count]['order_type'] = $inputProductList[$key]['order_type'];
				$dataArray[$count]['shipping_type'] = (isset($inputProductList[$key]['shipping_method']['shipping_type'])  && $inputProductList[$key]['shipping_method']['shipping_type']!='') ? $inputProductList[$key]['shipping_method']['shipping_type']: '';
				$dataArray[$count]['total_qty'] =  $this->getTotalQty($inputProductList[$key],$data);
				$culture = '';
				
				$data= $this->serviceRuleApi->updateCountryByVariation($data,$inputProductList[$key]);
				if (isset($inputProductList[$key]['culture'])) {
					$culture = $inputProductList[$key]['culture'];
					$data = $this->updatePriceByCountry($data, $culture);
				}
				
				$dataArray[$count]['unit_price'] = $this->getUnitPriceOfProduct($inputProductList[$key],$data['pricing']);
				if (isset($validateCouponCode) && $validateCouponCode == 'VALID_PROMO_CODE') {
					$dataArray[$count]['unit_price_original'] = $dataArray[$count]['unit_price'];

					

					$dataArray[$count]['unit_price'] = $this->promoCoupon->getUnitPriceByCouponCode($getCouponUsers,$data,$dataArray[$count]['total_qty'],$dataArray[$count]['unit_price_original'], $inputProductList[$key]['order_type']);
					$dataArray[$count]['coupon_code']= $getCouponUsers->getPromoCouponId()->getCouponName();
					
					$redeemCouponData = array();
					$redeemCouponData['pre_add_to_cart_id'] = $key;
					$redeemCouponData['unit_price'] = $dataArray[$count]['unit_price'];
					$redeemCouponData['item_qty_total'] = $dataArray[$count]['total_qty'];
					if (count($getCouponUsers) > 0) {
						$redeemCouponData['coupon_id'] = $getCouponUsers->getpromoCouponId()->getId();
					}

					$redeemCouponData['user_id'] = $this->userId;
					$redeemCouponData['discount_unit_price'] = $dataArray[$count]['unit_price_original']-$dataArray[$count]['unit_price'];
					$redeemCouponData['discount_amount'] = ($dataArray[$count]['unit_price_original']*$redeemCouponData['item_qty_total'])-($dataArray[$count]['unit_price']*$redeemCouponData['item_qty_total']);
					
					$dataArray[$count]['discount_amount'] = $redeemCouponData['discount_amount'];

					$this->promoCoupon->setRedeemCoupon($redeemCouponData);
				}
				$dataArray[$count]['amount'] = $dataArray[$count]['total_qty']*$this->TwigExtension->priceFilter($dataArray[$count]['unit_price']);
				$dataArray[$count]['is_complete']=1;
				//$dataArray[$count]['imprint']=$this->prepareImprintArray($inputProductList[$key]);
				$dataArray[$count]['imprint']=$this->prepareImprintArray($inputProductList[$key],$data['imprint_information']['imprint_method_information']);
				//$dataArray[$count]['charges']=$this->getAllAppliedCharges($inputProductList[$key],$data);
				$dataArray[$count]['charges']=$this->getAllAppliedCharges($dataArray[$count]);
				$dataArray[$count]['split']=$this->prepareProductArray($inputProductList[$key],$dataArray[$count],$attributeIdArray);
				$dataArray[$count]['special_instrution']=$inputProductList[$key]['special_instruction'];
				$dataArray[$count]['productDataArray']= $inputProductList[$key];
				
				$extraColorArray = array();
				if($inputProductList[$key]['extra_color'] == 'null'){
					if(isset($dataArray[$count]['split'][0]['variation_master']) && count($dataArray[$count]['split'][0]['variation_master'])>0) {
						foreach($dataArray[$count]['split'][0]['variation_master'] as $id=>$attVal) {
							$extraColorArray['mainColor'][] =  $attVal['attribute_value_color'];
						}
					}
				}
				else {
					$extraColorArray = $this->getExtraColorArray($inputProductList[$key]['extra_color'],$data['attributes']);
				}
				$dataArray[$count]['extra_color'] =	$extraColorArray;
			}
			else {
				$dataArray[$count]['order_type'] = '-';
				$dataArray[$count]['shipping_type'] = '-';
				$dataArray[$count]['total_qty'] =  '-';
				$dataArray[$count]['unit_price'] = '-';
				$dataArray[$count]['amount'] = '-';
				$dataArray[$count]['is_complete']=0;
				$dataArray[$count]['imprint']=array();
				$dataArray[$count]['charges']=array();
				$dataArray[$count]['split']=array();
				$dataArray[$count]['special_instrution']="-";
				$dataArray[$count]['extra_color']=array();
			}
				
			if($this->configurationRule['order_tax']['status']==1) {
				$dataArray [$count] ['tax'] = $this->getCalculateTax($data);
			}
			$dataArray [$count] ['cart_id'] = $key;
			$count++;
		}
		return $dataArray;
	}
	
	
	public function getExtraColorArray($extraColor,$apiAttribute){
		$attrIds = $this->productDetailManager->getAttributeIds();
		$trimColorId = $attrIds['trim_color_id'];
		$barrelColorId = $attrIds['barrel_color_id'];
		$inkColorId = $attrIds['ink_color_id'];
		$colorId = $attrIds['color_attr_id'];
		$result = array();
		$cnt = 0;
		foreach($extraColor as $key=>$val){
			if($val['color'] != ''){
				$extraColorId = str_replace('id:','',$key);
				foreach($apiAttribute as $k=>$v){
					if($v['id'] == $colorId){
						if($extraColorId == $barrelColorId){
							$result[$cnt]['color_type'] = 'Barrel';
						}else if($extraColorId == $trimColorId){
							$result[$cnt]['color_type'] = 'Trim';
						}else if($extraColorId == $inkColorId){
							$result[$cnt]['color_type'] = 'Ink';
						}
						$result[$cnt]['name'] = $v['values'][$val['color']];
						$cnt++;
					}
				}
			}
		}
		return $result;
	}
	
	
	/**
	 * @author Employee Id: 4248
	 * OB eCommerce Product - Order
	 * To set the record into the order tables
	 */
	public function addOrderDetail()
	{
		$order_no = $this->orderMasterRepositoryManager->getLastInsertedOrder();
		$status=array();
		if($this->userId>0){
			$cartData = $this->getCartList();
			$this->totalProduct = $this->getTotalCount();
			$userObj = $this->getUserDetail($this->userId, 'register');
			if ($this->totalProduct > 0)
			{
				$data=$this->sessionManager->get('paymentDetail');
				$productDetailArray = $this->cart;
				$contactBookId=$data['billing_id'];
				$billingAddress = $this->userContactBookManager->getSingleContactBook($contactBookId);
				if($userObj->getUserType()=="distributor"){
					$this->productDataArray['pref_dist']=$this->siteOwnerId;
				}else{
					$this->productDataArray['pref_dist']=$userObj->getLocatedDistributorId();
				}
				$this->productDataArray['customerNumber']=$data['customer_number'];
				$this->productDataArray['poNumber']=$data['po_number'];
				$this->productDataArray['transactionId']=$data['transaction_id'];
				$this->productDataArray['paymentAmount']=$data['amount'];
				$this->productDataArray['tax_total']=$data['tax_total'];
				$this->productDataArray['paymentmethod']=$data['method'];
				$this->productDataArray['productData']=$cartData;
				$this->productDataArray['order_no']=$order_no;
	
				$this->orderMasterRepositoryManager->setBillingAddress($billingAddress);
				$this->orderMasterRepositoryManager->setErpId($this->request->get('erp_id',NULL));
				$status= $this->orderMasterRepositoryManager->setOrderData($productDetailArray,$this->productDataArray);
			}
			if(isset($status['data']) && count($status['data']) > 0 && $status['data']->getId()>0){
				$getCouponUsers = $this->couponUsers->findActiveUserRedeemCoupon();
				if (count($getCouponUsers) == 1) {
					$this->couponUsers->setIsUsedCoupon($getCouponUsers->getPromoCouponId()->getId());

					$data['coupon_discount'] = 0.000;
					foreach($cartData as $k=>$cart) {
						$redeemOrderData = array();
						$redeemOrderData['pre_add_to_cart_id'] = $cart['cart_id'];
						$redeemOrderData['order_id'] = $status['data']->getId();
						$redeemOrderData['order_item_line_id'] = isset($status['pre_cart_ids_with_order_item_line_ids'][$cart['cart_id']]) ? $status['pre_cart_ids_with_order_item_line_ids'][$cart['cart_id']] : 0;
						$this->promoCoupon->setRedeemCoupon($redeemOrderData);
						$data['coupon_discount'] = $data['coupon_discount'] + $cart['discount_amount'];
					}
					
					$data['coupon_code'] = $getCouponUsers->getPromoCouponId()->getCouponName();
				}
				
				//here you add email code for order email
				$toEmail = '';
				$data['order_no']=$order_no;
				$data['order'] = $this->isOrderExists($status['data']->getId());
				$data['data'] = $this->getProductList($status['data']->getId());
				$data['sizeAllowed']= $this->checkSizeAllow($data['data'][0]['category']);
				$data['instance_type']= $this->instanceType;
				$data['confi'] = $this->configurationRule['order_tax'];
				$data['user'] = $userObj;
				$data['productData']=$cartData;
				
				/* Retrive the productDetailConfiguration */
				if(isset($data['order']))
				{
					$orderItemLines = $data['order']->getOrderItemLine();
					foreach($orderItemLines as $orderItemLineIndex => $orderItemLineData)
					{
						$encodedProductDetailConfiguration = $orderItemLineData->getProductDetailConfiguration();
						$decodedProductDetailConfiguration = base64_decode($encodedProductDetailConfiguration);
						$serizliaedProductDetailConfiguration = $decodedProductDetailConfiguration;
						$unSerizliaedProductDetailConfiguration = unserialize($serizliaedProductDetailConfiguration);
						$data['order']->getOrderItemLine()[$orderItemLineIndex]->setProductDetailConfiguration($unSerizliaedProductDetailConfiguration);
					}
				}
				
				$this->sessionManager->remove('paymentDetail');
				$this->deleteAllCartList();
				
				$orderDetailHTML = $this->twigManager->render ( 'OfficeBrainOrderBundle:Order:orderEmail.html.twig', $data);
				$templateParams = array('order_mail_template' => $orderDetailHTML);
				$eventKey = 'order_email';
				$message = $this->emailManager->sendMail($eventKey, $toEmail, $templateParams);//, $culture=null, $fromEmail);
	
				
				$status['order_id']=$data['order']->getId();
				return $status;
			}else{
				return $status['error']='error';
			}
		}
	}

	public function updatePriceByCountry($productDetailArray, $culture)
	{
		$country_code = explode('_', $culture);
		$productArray = array();
			
		if (isset($productDetailArray['product_id'])) {
			$productArray[] = $productDetailArray;
		} elseif (isset($productDetailArray['products'])) {
			$productArray = (array)$productDetailArray['products'];
		} else {
			$productArray = (array)$productDetailArray;
		}
			
		foreach ($productArray as $main_index=>$productDetail) {
			if (isset($country_code[1]) && isset($productArray[$main_index]['variation_pricing_for_other_country'][$country_code[1]])) {
				$productArray[$main_index]['variation_pricing'] = $productArray[$main_index]['variation_pricing_for_other_country'][$country_code[1]];
			}
			if (isset($country_code[1]) && isset($productArray[$main_index]['pricing_for_other_country'][$country_code[1]])) {
				$productArray[$main_index]['pricing'] = $productArray[$main_index]['pricing_for_other_country'][$country_code[1]];
				
				$priceType = 'decorative';
				$index = 0;

				if (isset($productArray[$main_index]['pricing'][$priceType][$index])) {
					$productArray[$main_index]['unit_price'] = $productArray[$main_index]['pricing'][$priceType][$index]['rate'];
					$productArray[$main_index]['regular_price'] = $productArray[$main_index]['pricing'][$priceType][$index]['rate'];
					$productArray[$main_index]['minimum_quantity'] = $productArray[$main_index]['pricing'][$priceType][$index]['from'];
					$productArray[$main_index]['minimum_quantity_range'] = $productArray[$main_index]['pricing'][$priceType][$index]['from']. "-" . $productArray[$main_index]['pricing'][$priceType][$index]['to'];
					$productArray[$main_index]['min_price'] = $productArray[$main_index]['pricing'][$priceType][count($productArray[$main_index]['pricing'][$priceType])-1]['rate'];
					$productArray[$main_index]['code'] = $productArray[$main_index]['pricing'][$priceType][count($productArray[$main_index]['pricing'][$priceType])-1]['code'];
				}
			}
		}
			
		if (isset($productDetailArray['product_id'])) {
			$productDetailArray = reset($productArray);
		} elseif (isset($productDetailArray['products'])) {
			$productDetailArray['products'] = $productArray;
		} else {
			$productDetailArray = $productArray;
		}
	
		unset($country_code);
		unset($productArray);
	
		return $productDetailArray;
	}
	

	public function setShippingAddToCartNew()
	{
        $req = $this->request->request->all();
        $cartIds = array_keys($req['data']);
        $carts = $this->preCartRepositoryManager->getCartByIds($cartIds);
        foreach($carts as $cartObj) {
        	$cartId = $cartObj->getId();
        	$inputData = $req['data'][$cartId];
        	$productId = $cartObj->getProductId();
			$getProductDetailConfiguration = $cartObj->getProductDetailConfiguration();
			$productDetailConfiguration = unserialize($getProductDetailConfiguration);
			$shippingData = array();
			//print_r($productDetailConfiguration);
			if(isset($productDetailConfiguration['shipping_method']['shipping_detail'])){
				$productDetailConfiguration['shipping_method']['shipping_type'] = 'standard';
				$productDetailConfiguration['shipping_method']['shipping_detail'][0]['shipping_from'] = 'shipping_book';
				$productDetailConfiguration['shipping_method']['shipping_detail'][0]['selected_address_id'] = $inputData['selected_address_id'];
				$productDetailConfiguration['shipping_method']['shipping_detail'][0]['shipping_detail']['shipping_carrier'] = $inputData['shipping_carrier'];
				$productDetailConfiguration['shipping_method']['shipping_detail'][0]['shipping_detail']['shipping_charge'] = $inputData['shipping_charge'];
				$productDetailConfiguration['shipping_method']['shipping_detail'][0]['shipping_detail']['shipping_method'] = $inputData['shipping_method'];
				$productDetailConfiguration['shipping_method']['shipping_detail'][0]['shipping_detail']['ship_transittime'] = $inputData['ship_transittime'];

				$productDetailConfiguration['shipping_method']['shipping_detail'][0]['color_quantity'] = $productDetailConfiguration['color'];
			}else{
				$shippingData['shipping_type'] = 'standard';
				$shippingData['shipping_detail'][0]['shipping_from'] = 'shipping_book';
				$shippingData['shipping_detail'][0]['selected_address_id'] = $inputData['selected_address_id'];
				$shippingData['shipping_detail'][0]['color_quantity'] = $productDetailConfiguration['color'];
				$productDetailConfiguration['shipping_method'] = $shippingData;
				$shippingData['shipping_detail'][0]['shipping_detail']['shipping_carrier'] = $inputData['shipping_carrier'];
				$shippingData['shipping_detail'][0]['shipping_detail']['shipping_charge'] = $inputData['shipping_charge'];
				$shippingData['shipping_detail'][0]['shipping_detail']['shipping_method'] = $inputData['shipping_method'];
				$shippingData['shipping_detail'][0]['shipping_detail']['ship_transittime'] = $inputData['ship_transittime'];
				
			}
			foreach($productDetailConfiguration['shipping_method']['shipping_detail'][0]['color_quantity'] as $key=>$extra){
				$productDetailConfiguration['shipping_method']['shipping_detail'][0]['color_quantity'][$key]['actual_quantity'] = $extra['quantity'];
			}
			$productDetailConfiguration = serialize($productDetailConfiguration);	
			$this->preCartRepositoryManager->updateDataInCartById($cartObj,$productDetailConfiguration);
        }
		return 'SUCCESS';
	}

	/**
	 * OB eCommerce Product - AddShippingToCart
	 * To set the cart product into the session
	 */
	public function setShippingAddToCart()
	{
		$productIds = $this->request->get('product_id');
		$data['product_data'] = $productData = $this->request->request->all();
		$productData['order_type'] = $this->request->get('order_type');
		$productDetailConfiguration = serialize($productData);
		foreach($productData['cart_ids'] as $cartId) {
			$productData = $this->request->request->all();
			$cartObj = $this->preCartRepositoryManager->getCartById($cartId);
			$productId = $cartObj->getProductId();
			$getProductDetailConfiguration = $cartObj->getProductDetailConfiguration();
			$productDetailConfiguration = unserialize($getProductDetailConfiguration);
			foreach($productData['shipping_method']['shipping_detail'] as $i=>$sDetail) { 
				$productData['shipping_method']['shipping_detail'][$i]['color_quantity'] = $sDetail['color_quantity'][$cartId];
				$productData['shipping_method']['shipping_detail'][$i]['shipping_detail']=$sDetail['shipping_detail'][$cartId];
			}
			$productData['shipping_method']['quantity_detail'] = $productData['shipping_method']['quantity_detail'][$cartId];

			//print_r($productData['shipping_method']);exit;
			$productDetailConfiguration['shipping_method'] = $productData['shipping_method'];
			
			$productDetailConfiguration = serialize($productDetailConfiguration);
			
			$this->preCartRepositoryManager->updateDataInCartById($cartObj,$productDetailConfiguration);
		}
   
		return 'SUCCESS';
	}
}
