<?php
namespace AppBundle\Controller;
use mysql_xdevapi\Exception;
use \Pimcore\Controller\FrontendController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use \Pimcore\Model\DataObject;
use AppBundle\Service\UtilService;
use AppBundle\Service\VehicleService;
use Pimcore\Model\DataObject\Data\BlockElement;
use Pimcore\Model\Element\Service;
use Pimcore\Log\ApplicationLogger;
class VehicleController extends FrontendController
{
/**
* @Route("/api/getvehicleinfo", methods={"POST","HEAD"})
*/
public function getVehicleInfoAction(Request $request)
{
$requestArr = json_decode($request->getContent(),true);
$lcdvCode = $requestArr['lcdv16'];
$vechiles = DataObject\Vehicle::getByLcdv16($lcdvCode);
$vechileArr = [];
if($vechiles->getCount() > 0){
$vechilesData = $vechiles->load();
foreach ($vechilesData as $vehicle){
$tmpArr = [];
$tmpArr['id'] = $vehicle->getId();
$tmpArr['lcdv16'] = $vehicle->getLcdv16();
$tmpArr['startDate'] = $vehicle->getStartDate()->toDateString('Y-m-d');
$tmpArr['endDate'] = $vehicle->getEndDate()->toDateString('Y-m-d');
$additionalInfoData = $vehicle->getAdditonalInfoData()->getItems();
$tmpArr['additionalLcdvInfo'] = [];
foreach($additionalInfoData as $additionalInfo){
$tmpAdditionalInfo = [];
$charRelData = $additionalInfo->getCharacteristics();
$tmpAdditionalInfo['characteristicsValue'] = $additionalInfo->getCharacteristicsValue();
$tmpAdditionalInfo['charValDesc'] = $additionalInfo->getCharValDesc();
$tmpAdditionalInfo['identifier'] = $additionalInfo->getIdentifier();
$tmpAdditionalInfo['dependent'] = $additionalInfo->getDependent();
$tmpAdditionalInfo['characteristics'] = $charRelData->getCharacteristics();
$tmpAdditionalInfo['characteristicsDescription'] = $charRelData->getCharacteristicsDesc();
array_push($tmpArr['additionalLcdvInfo'],$tmpAdditionalInfo);
}
array_push($vechileArr,$tmpArr);
}
$response = new Response();
$response->setContent(json_encode(array('success' => 'true', 'errors' => [], 'data' => $vechileArr)));
$response->setStatusCode(200);
$response->headers->set('Content-Type', 'application/json');
return $response;
//return $response;
}else{
$response = new Response();
$response->setContent(json_encode(array('success' => 'false', 'errors' => ['Vehicle information not available'], 'data' => [])));
$response->setStatusCode(404);
$response->headers->set('Content-Type', 'application/json');
return $response;
//return $response;
}
}
/**
* @Route("/api/testconnection", methods={"GET","HEAD"})
*/
public function testConnectionAction(Request $request)
{
$response = new Response();
$response->setContent(json_encode(array('success' => 'true', 'message' => 'connection successfull')));
$response->setStatusCode(200);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
public function viewVehicleAction(Request $request)
{
$vechiles = new DataObject\Vehicle\Listing();
//$this->view->vehicles = $vechiles->getObjects();
$vehicleArr = [];
$vehicleData = $vechiles->getObjects();
foreach ($vehicleData as $vehicle){
$tmpData['id'] = $vehicle->getId();
$tmpData['lcdv16'] = $vehicle->getLcdv16();
$tmpData['startDate'] = $vehicle->getStartDate()->toDateString('Y-m-d');
$tmpData['endDate'] = $vehicle->getEndDate()->toDateString('Y-m-d');
$tmpData['lcdv16Info'] = [];
$lcdvData = $vehicle->getLcdv16Data()->getItems();
foreach($lcdvData as $lcdv){
$tmpLcdv16Info = [];
$charRelData = $lcdv->getCharacteristics();
$tmpLcdv16Info['characteristicsValue'] = $lcdv->getCharacteristicsValue();
$tmpLcdv16Info['charValDesc'] = $lcdv->getCharValDesc();
$tmpLcdv16Info['identifier'] = $lcdv->getIdentifier();
$tmpLcdv16Info['dependent'] = $lcdv->getDependent();
$tmpLcdv16Info['characteristics'] = $charRelData->getCharacteristics();
$tmpLcdv16Info['characteristicsDescription'] = $charRelData->getCharacteristicsDesc();
array_push($tmpData['lcdv16Info'],$tmpLcdv16Info);
}
$additionalInfoData = $vehicle->getAdditonalInfoData()->getItems();
$tmpData['additionalLcdvInfo'] = [];
foreach($additionalInfoData as $additionalInfo){
$tmpAdditionalInfo = [];
$charRelData = $additionalInfo->getCharacteristics();
$tmpAdditionalInfo['characteristicsValue'] = $additionalInfo->getCharacteristicsValue();
$tmpAdditionalInfo['charValDesc'] = $additionalInfo->getCharValDesc();
$tmpAdditionalInfo['identifier'] = $additionalInfo->getIdentifier();
$tmpAdditionalInfo['dependent'] = $additionalInfo->getDependent();
$tmpAdditionalInfo['characteristics'] = $charRelData->getCharacteristics();
$tmpAdditionalInfo['characteristicsDescription'] = $charRelData->getCharacteristicsDesc();
array_push($tmpData['additionalLcdvInfo'],$tmpAdditionalInfo);
}
//Exterior Colors
$exteriorColorData = $vehicle->getExteriorColorCombinations();
$exteriorColorArr = [];
foreach($exteriorColorData as $exteriorColor){
$exteriorColorArr[] = array("code"=>$exteriorColor[0],"name"=>$exteriorColor[1]);
}
$tmpData['exteriorColors'] = $exteriorColorArr;
//Interior Colors
$interiorColorData = $vehicle->getInteriorColorCombo();
$interiorColorArr = [];
foreach($interiorColorData as $interiorColor){
$interiorColorArr[] = array("code"=>$interiorColor[0],"name"=>$interiorColor[1]);
}
$tmpData['interiorColors'] = $interiorColorArr;
array_push($vehicleArr, $tmpData);
}
$this->view->vehicles = $vehicleArr;
}
/**
* @Route("/api/receivevehicleprice", methods={"POST","HEAD"})
*/
public function receiveVehiclePriceAction(Request $request)
{
$vehiclePriceData = json_decode( $request->getContent(), true);
if(count($vehiclePriceData) > 0 && count($vehiclePriceData['priceMasterItems']) > 0){
try{
$date = new \Carbon\Carbon();
$utilService = new UtilService();
$storedId = [];
foreach($vehiclePriceData['priceMasterItems'] as $price){
$priceCheck = DataObject\VehiclePrice::getByMaterial($price['MATERIAL']);
if($priceCheck->getCount() > 0){
$newObject = $priceCheck->load()[0];
}else {
$newObject = new DataObject\VehiclePrice();
$newObject->setKey(\Pimcore\Model\Element\Service::getValidKey($price['MATERIAL'] . '-' . $price['VALID_BEG'], 'object'));
$folderId = $utilService->createFolderPath('VehiclePrices');
$newObject->setParentId($folderId);
}
$newObject->setCondType($price['COND_TYP']);
$newObject->setSaleOrg($price['SALE_ORG']);
$newObject->setDistCha($price['DIST_CHA']);
$regionObj = DataObject\Region::getByCode($price['REGION']);
$newObject->setRegion($regionObj->getObjects()[0]);
$countryObj = DataObject\Country::getByCtr($price['COUNTRY']);
$newObject->setCountry($countryObj->getObjects()[0]);
$newObject->setCity($price['CITY']);
$newObject->setMaterial($price['MATERIAL']);
$newObject->setVariant($price['VARIANT']);
$date= new \DateTime($price['VALID_END']);
$newObject->setValidEnd($date);
$startDate= new \DateTime($price['VALID_BEG']);
$newObject->setValidStart($startDate);
$newObject->setAmount(floatval($price['AMOUNT']));
$currencyObj = DataObject\Currency::getByCrcy($price['CURRENCY']);
$newObject->setCurrency($currencyObj->getObjects()[0]);
$newObject->setPublished(true);
$newObject->save();
array_push($storedId,$newObject->getId());
}
$response = new Response();
$response->setContent(json_encode(array('id'=>$storedId, 'errors' => [], 'success' => 'true')));
$response->setStatusCode(201);
$response->headers->set('Content-Type', 'application/json');
return $response;
}catch (\Exception $e){
$response = new Response();
$response->setContent(json_encode(array('success' => 'false', 'errors' => [$e->getMessage()])));
$response->setStatusCode(500);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
}else{
$response = new Response();
$response->setContent(json_encode(array('success' => 'false', 'errors' => ['Unexpected Request Format'])));
$response->setStatusCode(400);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
}
/**
* @Route("/api/receivevehiclemasterlcdv24", methods={"POST","HEAD"})
*/
public function receiveVehicleMasterLcdv24(Request $request, ApplicationLogger $logger){
$utilService = new UtilService();
$isNew = true;
\Pimcore\Log\Simple::log('vehiclesMasterLCDV24', $request->getContent() . PHP_EOL);
$logger->info('LCDV24 Data Received',['data'=>$request->getContent()]);
$vehiclesMasterData = json_decode( $request->getContent());
if(!empty($vehiclesMasterData) && count($vehiclesMasterData->DATA) > 0 && count($vehiclesMasterData->DATA[0]->item) > 0){
$lcdv24Arr = $vehiclesMasterData->DATA[0]->item;
foreach($lcdv24Arr as $lcdv24Item){
$vehicleMasterCheck = DataObject\VehicleLcdv24::getByLcdv24($lcdv24Item->LCDV24);
if($vehicleMasterCheck->getCount() > 0){
$newObject = $vehicleMasterCheck->load()[0];
$isNew = false;
}else{
$newObject = new DataObject\VehicleLcdv24();
$newObject->setKey(\Pimcore\Model\Element\Service::getValidKey($lcdv24Item->LCDV24, 'object'));
$folderId = $utilService->createFolderPath('LCDV24');
$newObject->setParentId($folderId);
}
$startDateData = str_split($lcdv24Item->START_Date,4);
$startYear = $startDateData[0];
$startMonthData = str_split($startDateData[1],2);
$date = new \DateTime($startMonthData[1].'.'.$startMonthData[0].'.'.$startYear);
$newObject->setStartDate($date);
$endDateData = str_split($lcdv24Item->END_Date,4);
$endYear = $endDateData[0];
$endMonthData = str_split($endDateData[1],2);
$dateEnd = new \DateTime($endMonthData[1].'.'.$endMonthData[0].'.'.$endYear);
$newObject->setEndDate($dateEnd);
$newObject->setLcdv24($lcdv24Item->LCDV24);
$newObject->setPublished(true);
$newObject->save();
}
exit;
}
}
/**
* @Route("/api/receivevehiclemasterinfo", methods={"POST","HEAD"})
*/
public function receiveVehicleMasterInfoAction(Request $request, ApplicationLogger $logger)
{
\Pimcore\Log\Simple::log('vehiclesMasterData', $request->getContent() . PHP_EOL);
$logger->info('Vehicle Data Received',['data'=>$request->getContent()]);
//$logger->
$vehiclesMasterData = json_decode( $request->getContent());
$vehiclesMasterData = $vehiclesMasterData[0]->vehicle;
$isNew = true;
$utilService = new UtilService();
$storedId = [];
// if(count($vehiclesMasterData) > 0){
if(!empty($vehiclesMasterData)){
$storedId = [];
foreach($vehiclesMasterData as $vehicleMasterArr){
try{
// $vehicleMasterArr = $vehiclesMasterData['vehicle'];
$lcdv = $vehicleMasterArr->LCDV;
$startDate = $vehicleMasterArr->START;
$endDate = $vehicleMasterArr->END;
$attributesData = $vehicleMasterArr->ATTRIBUTES->item;
$validityDate = $attributesData->VALIDITYSTART;
$validityEndDate = $attributesData->VALIDITYEND;
$coupletData = $attributesData->COUPLET->item;
$vehicleMasterCheck = DataObject\VehicleMaster::getByLcdv($lcdv);
$vehicleMasterCheck->setUnpublished(true);
if($vehicleMasterCheck->getCount() > 0){
$newObject = $vehicleMasterCheck->load()[0];
$isNew = false;
}else{
$newObject = new DataObject\VehicleMaster();
$newObject->setKey(\Pimcore\Model\Element\Service::getValidKey($lcdv, 'object'));
$folderId = $utilService->createFolderPath('Vehicle Master');
$newObject->setParentId($folderId);
}
$newObject->setLcdv($lcdv);
$date = new \DateTime($startDate);
$newObject->setStartDate($date);
$dateEnd = new \DateTime($endDate);
$newObject->setEndDate($dateEnd);
$vDate = new \DateTime($validityDate);
$newObject->setValidityStart($vDate);
$vDateEnd= new \DateTime($validityEndDate);
$newObject->setValidityEnd($vDateEnd);
foreach ((array)$coupletData as $key => $coupletTypes) {
$items = new DataObject\Fieldcollection();
$exteriorColorType = [];
$exteriorColor = [];
$interiorColorType = [];
$interiorColor = [];
$descriptiveOptions = [];
$personalOptions = [];
foreach ($coupletTypes->items as $valueBasic) {
$character = $valueBasic->CHARACTER;
$charDesc = $valueBasic->CHAR_DESC;
$value = $valueBasic->VALUES;
$valDesc = $valueBasic->VAL_DESC;
$charaCheck = DataObject\VehicleCharacteristics::getByCharacteristics($character);
if ($charaCheck->getCount() > 0) {
$newChars = $charaCheck->load()[0];
} else {
$newChars = new DataObject\VehicleCharacteristics();
$newChars->setKey(\Pimcore\Model\Element\Service::getValidKey($character, 'object'));
$charsFolderId = $utilService->createFolderPath('Characteristics');
$newChars->setParentId($charsFolderId);
$newChars->setCharacteristics($character);
$newChars->setCharacteristicsDesc($charDesc);
$newChars->setPublished(true);
$newChars->save();
}
$item = new DataObject\Fieldcollection\Data\VehicleMasterCharacteristics();
$item->setCharacteristics($newChars);
$item->setVmValues($value);
$item->setVmValDesc($valDesc);
if(!empty($valueBasic->Parent)){
$data = [
"condition" => new BlockElement('condition', 'textarea', json_encode($valueBasic->Parent))
];
$item->setDependency([$data]);
}
$items->add($item);
}
if($key == 'Basic'){
$newObject->setBasicInformation($items);
}
if($key == 'Descriptive'){
$newObject->setDescriptiveInformation($items);
}
if($key == 'Personalization'){
$newObject->setPersonalInformation($items);
}
}
$newObject->setPublished(false);
$newObject->save();
array_push($storedId,$newObject->getId());
}catch (\Exception $e){
$response = new Response();
$response->setContent(json_encode(array('success' => 'false', 'errors' => [$e->getMessage()])));
$response->setStatusCode(500);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
}
$response = new Response();
$response->setContent(json_encode(array('id'=>$storedId, 'errors' => [], 'success' => 'true')));
$response->setStatusCode(201);
$response->headers->set('Content-Type', 'application/json');
return $response;
}else{
$response = new Response();
$response->setContent(json_encode(array('success' => 'false', 'errors' => ['Unexpected Request Format'])));
$response->setStatusCode(400);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
}
/**
* @Route("/api/vehiclepriceinfo", methods={"POST","HEAD"})
*/
public function vehiclePriceInfoAction(Request $request)
{
$vehiclesData = json_decode( $request->getContent(), true);
$lcdv16 = $vehiclesData['lcdv16'];
$region = $vehiclesData['region'];
try{
if(!empty($lcdv16) && !empty($region)){
$state = 0;
$regionObj = DataObject\Region::getByCode($region,1);
if(!empty($regionObj)){
$regionID = $regionObj->getID();
}else{
$state = 1;
}
$lcdv16Obj = DataObject\VehicleMaster::getByLcdv($lcdv16,1);
if(!empty($lcdv16Obj)){
$lcdv16ID = $lcdv16Obj->getID();
}else{
$state = 1;
}
if($state == 0){
$vehiclePI = [];
$vehiclePriceAttributeObj = new DataObject\VehiclePriceAttribute\Listing();
$vehiclePriceAttributeObj->setCondition("lcdv16__id = :lcdv",["lcdv"=>$lcdv16ID]);
$vehiclePriceAttributeObj->addConditionParam("customerRegion__id = :regid", ["regid"=>$regionID], "AND");
//$vehiclePriceAttributeObj->addConditionParam('validStart >= :date AND validEnd <= :date',['date'=>time()],"AND");
$vehiclePriceAttributeData = $vehiclePriceAttributeObj->load();
if($vehiclePriceAttributeData){
foreach ($vehiclePriceAttributeData as $key => $vpaValue) {
$vehiclePI['vehiclePriceAttribute'][$key]['codeType'] = $vpaValue->getCondType();
$vehiclePI['vehiclePriceAttribute'][$key]['saleOrg'] = $vpaValue->getSaleOrg();
$vehiclePI['vehiclePriceAttribute'][$key]['distCha'] = $vpaValue->getDistCha();
if($vpaValue->getPlantRegion()){
$plantRegionObj = $vpaValue->getPlantRegion();
$vehiclePI['vehiclePriceAttribute'][$key]['plantRegion']['code'] = $plantRegionObj->getCode();
$vehiclePI['vehiclePriceAttribute'][$key]['plantRegion']['name'] = $plantRegionObj->getName();
}else{
$vehiclePI['vehiclePriceAttribute']['plantRegion'] = '';
}
if($vpaValue->getCountry()){
$countryObj = $vpaValue->getCountry();
$vehiclePI['vehiclePriceAttribute'][$key]['country']['code'] = $countryObj->getCtr();
$vehiclePI['vehiclePriceAttribute'][$key]['country']['name'] = $countryObj->getName();
}else{
$vehiclePI['vehiclePriceAttribute'][$key]['country'] = '';
}
$vehiclePI['vehiclePriceAttribute'][$key]['City'] = $vpaValue->getCity();
$vehiclePI['vehiclePriceAttribute'][$key]['MainAttr'] = $vpaValue->getMainAttr();
if($vpaValue->getValidStart()){
$vehiclePI['vehiclePriceAttribute'][$key]['ValidStart'] = $vpaValue->getValidStart()->toDateString('Y-m-d');
}else{
$vehiclePI['vehiclePriceAttribute'][$key]['ValidStart'] = '';
}
if($vpaValue->getValidEnd()){
$vehiclePI['vehiclePriceAttribute'][$key]['ValidEnd'] = $vpaValue->getValidEnd()->toDateString('Y-m-d');
}else{
$vehiclePI['vehiclePriceAttribute'][$key]['ValidEnd'] = '';
}
if($vpaValue->getCurrency()){
$currencyObj = $vpaValue->getCurrency();
$vehiclePI['vehiclePriceAttribute'][$key]['Currency']['code'] = $currencyObj->getCrcy();
$vehiclePI['vehiclePriceAttribute'][$key]['Currency']['currency'] = $currencyObj->getCurrency();
}else{
$vehiclePI['vehiclePriceAttribute'][$key]['Currency'] = '';
}
if($vpaValue){
$vehiclePI['vehiclePriceAttribute'][$key]['amount'] = $vpaValue->getAmount();
}else{
$vehiclePI['vehiclePriceAttribute'][$key]['amount'] = 'NuLL';
}
$vehiclePI['vehiclePriceAttribute'][$key]['exgstprice'] = $vpaValue->getExGSTPrice();
}
}else{
$vehiclePI['vehiclePriceAttribute'] = 'NULL';
}
$vehiclePriceOptionsObj = new DataObject\VehiclePriceOptions\Listing();
$vehiclePriceOptionsObj->setCondition("lcdv16__id = :lcdv",["lcdv"=>$lcdv16ID]);
$vehiclePriceOptionsObj->addConditionParam("custRegion__id = :regid", ["regid"=>$regionID], "AND");
//$vehiclePriceOptionsObj->addConditionParam('validStart >= :date AND validEnd <= :date',['date'=>time()],"AND");
$vehiclePriceOptionsData = $vehiclePriceOptionsObj->load();
if($vehiclePriceOptionsData){
foreach ($vehiclePriceOptionsData as $key => $vpovalue) {
$vehiclePI['vehiclePriceOptions'][$key]['codeType'] = $vpovalue->getCondType();
$vehiclePI['vehiclePriceOptions'][$key]['saleOrg'] = $vpovalue->getSaleOrg();
$vehiclePI['vehiclePriceOptions'][$key]['distCha'] = $vpovalue->getDistCha();
if($vpovalue->getPlantRegion()){
$plantRegionObj = $vpovalue->getPlantRegion();
$vehiclePI['vehiclePriceOptions'][$key]['plantRegion']['code'] = $plantRegionObj->getCode();
$vehiclePI['vehiclePriceOptions'][$key]['plantRegion']['name'] = $plantRegionObj->getName();
}else{
$vehiclePI['vehiclePriceOptions'][$key]['plantRegion'] = '';
}
if($vpovalue->getCountry()){
$countryObj = $vpovalue->getCountry();
$vehiclePI['vehiclePriceOptions'][$key]['country']['code'] = $countryObj->getCtr();
$vehiclePI['vehiclePriceOptions'][$key]['country']['name'] = $countryObj->getName();
}else{
$vehiclePI['vehiclePriceOptions'][$key]['country'] = '';
}
$vehiclePI['vehiclePriceOptions'][$key]['City'] = $vpovalue->getCity();
$vehiclePI['vehiclePriceOptions'][$key]['MainAttr'] = $vpovalue->getMainAttr();
if($vpovalue->getValidStart()){
$vehiclePI['vehiclePriceOptions'][$key]['ValidStart'] = $vpovalue->getValidStart()->toDateString('Y-m-d');
}else{
$vehiclePI['vehiclePriceOptions'][$key]['ValidStart'] = '';
}
if($vpovalue->getValidEnd()){
$vehiclePI['vehiclePriceOptions'][$key]['ValidEnd'] = $vpovalue->getValidEnd()->toDateString('Y-m-d');
}else{
$vehiclePI['vehiclePriceOptions'][$key]['ValidEnd'] = '';
}
if($vpovalue->getCurrency()){
$currencyObj = $vpovalue->getCurrency();
$vehiclePI['vehiclePriceOptions'][$key]['Currency']['code'] = $currencyObj->getCrcy();
$vehiclePI['vehiclePriceOptions'][$key]['Currency']['currency'] = $currencyObj->getCurrency();
}else{
$vehiclePI['vehiclePriceOptions'][$key]['Currency'] = '';
}
if($vpovalue){
$vehiclePI['vehiclePriceOptions'][$key]['amount'] = $vpovalue->getAmount();
}else{
$vehiclePI['vehiclePriceOptions'][$key]['amount'] = 'NULL';
}
$vehiclePI['vehiclePriceOptions'][$key]['exgstprice'] = $vpovalue->getExGSTPrice();
}
}else{
$vehiclePI['vehiclePriceOptions'] = 'NULL';
}
$vehiclePriceObj = new DataObject\VehiclePrice\Listing();
$vehiclePriceObj->setCondition("lcdv16__id = :lcdv",["lcdv"=>$lcdv16ID]);
$vehiclePriceObj->addConditionParam("customerRegion__id = :regid", ["regid"=>$regionID], "AND");
//$vehiclePriceObj->addConditionParam('validStart >= :date AND validEnd <= :date',['date'=>time()],"AND");
$vehiclePriceData = $vehiclePriceObj->load();
if($vehiclePriceData){
$vehiclePI['vehiclePrice']['codeType'] = $vehiclePriceData[0]->getCondType();
$vehiclePI['vehiclePrice']['saleOrg'] = $vehiclePriceData[0]->getSaleOrg();
$vehiclePI['vehiclePrice']['distCha'] = $vehiclePriceData[0]->getDistCha();
if($vehiclePriceData[0]->getPlantRegion()){
$plantRegionObj = $vehiclePriceData[0]->getPlantRegion();
$vehiclePI['vehiclePrice']['plantRegion']['code'] = $plantRegionObj->getCode();
$vehiclePI['vehiclePrice']['plantRegion']['name'] = $plantRegionObj->getName();
}else{
$vehiclePI['vehiclePrice']['plantRegion'] = '';
}
if($vehiclePriceData[0]->getCoutnry()){
$countryObj = $vehiclePriceData[0]->getCoutnry();
$vehiclePI['vehiclePrice']['country']['code'] = $countryObj->getCtr();
$vehiclePI['vehiclePrice']['country']['name'] = $countryObj->getName();
}else{
$vehiclePI['vehiclePrice']['country'] = '';
}
$vehiclePI['vehiclePrice']['City'] = $vehiclePriceData[0]->getCity();
if($vehiclePriceData[0]->getValidStart()){
$vehiclePI['vehiclePrice']['ValidStart'] = $vehiclePriceData[0]->getValidStart()->toDateString('Y-m-d');
}else{
$vehiclePI['vehiclePrice']['ValidStart'] = '';
}
if($vehiclePriceData[0]->getValidEnd()){
$vehiclePI['vehiclePrice']['ValidEnd'] = $vehiclePriceData[0]->getValidEnd()->toDateString('Y-m-d');
}else{
$vehiclePI['vehiclePrice']['ValidEnd'] = '';
}
if($vehiclePriceData[0]->getCurrency()){
$currencyObj = $vehiclePriceData[0]->getCurrency();
$vehiclePI['vehiclePrice']['Currency']['code'] = $currencyObj->getCrcy();
$vehiclePI['vehiclePrice']['Currency']['currency'] = $currencyObj->getCurrency();
}else{
$vehiclePI['vehiclePrice']['Currency'] = '';
}
$vehiclePI['vehiclePrice']['amount'] = $vehiclePriceData[0]->getAmount();
$vehiclePI['vehiclePrice']['exgstprice'] = $vehiclePriceData[0]->getExGSTPrice();
}else{
$vehiclePI['vehiclePrice'] = "NULL";
}
$vehicleTaxObj = new DataObject\Tax\Listing();
$vehicleTaxObj->setCondition('lcdv16__id = ?', $lcdv16ID);
$vehicleTaxObj->addConditionParam("custRegion__id = ?",$regionID,'AND');
$vehicleTaxData = $vehicleTaxObj->load();
if($vehicleTaxData){
foreach($vehicleTaxData as $key=>$taxData){
$vehiclePI['vehicleTax'][$key]['taxType'] = $taxData->getTaxType();
$vehiclePI['vehicleTax'][$key]['hsnCode'] = $taxData->getHsnCode();
$vehiclePI['vehicleTax'][$key]['percentage'] = $taxData->getPercentage();
$vehiclePI['vehicleTax'][$key]['validStart'] = $taxData->getValidStart()->toDateString('Y-m-d');
$vehiclePI['vehicleTax'][$key]['validEnd'] = $taxData->getValidEnd()->toDateString('Y-m-d');
$vehiclePI['vehicleTax'][$key]['plantRegion'] = $taxData->getPlantRegion()->getCode();
$vehiclePI['vehicleTax'][$key]['customerRegion'] = $taxData->getCustRegion()->getCode();
}
}else{
$vehiclePI['vehicleTax'] = [];
}
$tmpResponse = $vehiclePI;
}else{
$tmpResponse = 'LCDV or Region not available.';
}
}else{
$tmpResponse = 'Invalid Perameters.';
}
$response = new Response();
$response->setContent(json_encode($tmpResponse));
$response->setStatusCode(201);
$response->headers->set('Content-Type', 'application/json');
return $response;
}catch (\Exception $e){
$response = new Response();
$response->setContent(json_encode(array('success' => 'false', 'errors' => [$e->getMessage()])));
$response->setStatusCode(500);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
}
/**
* @Route("/api/regionlist", methods={"POST","HEAD"})
*/
public function regionListAction(Request $request)
{
$regionObj = new DataObject\Region\Listing();
$regionData = $regionObj->load();
try{
$regionDataArr = [];
foreach ($regionData as $value) {
$regionData = [];
$regionData['code'] = $value->getCode();
$regionData['name'] = $value->getName();
$countryData= $value->getCountry();
$country = [];
if($countryData){
$country['code'] = $countryData->getCtr();
$country['name'] = $countryData->getName();
}
$regionData['country'] = $country;
array_push($regionDataArr, $regionData);
}
$regionDataJSON = json_encode($regionDataArr);
$response = new Response();
$response->setContent($regionDataJSON);
$response->setStatusCode(201);
$response->headers->set('Content-Type', 'application/json');
return $response;
}catch (\Exception $e){
$response = new Response();
$response->setContent(json_encode(array('success' => 'false', 'errors' => [$e->getMessage()])));
$response->setStatusCode(500);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
}
/**
* @Route("/api/minbookingamount", methods={"POST","HEAD"})
*/
public function minBookingAmountAction(Request $request)
{
$vehiclesLcdv = json_decode( $request->getContent(), true);
$lcdv16 = $vehiclesLcdv['lcdv16'];
try{
if($lcdv16){
$vehicleMasterCheck = DataObject\VehicleMaster::getByLcdv($lcdv16,1);
if(!empty($vehicleMasterCheck)){
$vehicleId = $vehicleMasterCheck->getId();
$minBookingAmountObj = new DataObject\minBookingAmount\Listing();
$minBookingAmountObj->setCondition("vehicle__id = '$vehicleId'");
$minBookingAmountData = $minBookingAmountObj->load();
$minBookingAmount = [];
$preAmount = $minBookingAmountData[0]->getPreBookingAmount();
if($preAmount){
$preAmountVal = $preAmount->getValue();
$preAmountUnit = $preAmount->getUnit()->getLongname();
$preBookingAmount = $preAmountVal.' '.$preAmountUnit;
}else{
$preBookingAmount = 'NULL';
}
$bookingAmount = $minBookingAmountData[0]->getBookingAmount();
if($bookingAmount){
$bookingAmountVal = $bookingAmount->getValue();
$bookingAmountUnit = $bookingAmount->getUnit()->getLongname();
$bookingAmount = $bookingAmountVal.' '.$bookingAmountUnit;
}else{
$bookingAmount = 'NULL';
}
array_push($minBookingAmount, ['preBookingAmount' => $preBookingAmount, 'bookingAmount' => $bookingAmount]);
$tmpResponse = $minBookingAmount;
}else{
$tmpResponse = 'Vehicle not found.';
}
}else{
$tmpResponse = "Invalid perameters.";
}
$response = new Response();
$response->setContent(json_encode($tmpResponse));
$response->setStatusCode(201);
$response->headers->set('Content-Type', 'application/json');
return $response;
}catch (\Exception $e){
$response = new Response();
$response->setContent(json_encode(array('success' => 'false', 'errors' => [$e->getMessage()])));
$response->setStatusCode(500);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
}
}