<?php

namespace OfficeBrain\Bundle\OrderBundle\Entity;

use Doctrine\ORM\EntityRepository;

/**
 * OrderShippingDetailRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class OrderShippingDetailRepository extends EntityRepository
{
	protected $upatedUid;
	
	public function getQueryBuilder()
	{
		return $this->getEntityManager()->getRepository('OfficeBrainOrderBundle:OrderShippingDetail')->createQueryBuilder('osd');
	}
	
    /**
     * To change order inline status
     *
     */
    public function changeOrderLineStatus($shippingDetail,$statusId,$status,$shippingType,$trackingId,$upatedUid)
    {
        $shippingDetail->setStatusId($statusId);
        $shippingDetail->setStatusCode($status);
        if($shippingType!='')
        {
        	$shippingDetail->setShippingTypeAdmin($shippingType);
        }
        if($trackingId!='')
        {
        	$shippingDetail->setTrackingId($trackingId);
        }
        $shippingDetail->setUpdatedAt(new \DateTime());
        $shippingDetail->setUpatedUid($upatedUid);

        $em = $this->getEntityManager();
    	$em->persist($shippingDetail);
    	$em->flush();
    	return 'SUCCESS';
    }
    public function getShippingDetailById($shipping_id)
    {
    	$queryBuilder = $this->getQueryBuilder();
    	$queryBuilder ->where('osd.id  =:shipping_id')
    	->setParameter('shipping_id', $shipping_id);
    	return $queryBuilder->getQuery()->getOneOrNullResult();
    }
}
