decode($content); } } if ( !function_exists('json_encode') ) { function json_encode($content) { require_once $_SERVER['DOCUMENT_ROOT'] . '/we/addons/carink/includes/utilities/ci.json.php'; $json = new Services_JSON; return $json->encode($content); } } require_once $_SERVER['DOCUMENT_ROOT'] . "/we/includes/security.include.php"; $dbConn = $securityInfo->getConnection(); // Check for vehid in $_REQUEST extract ( $_REQUEST ); if ( empty( $vehid ) ) { exit(); } // First get the Vehicle object in order to get the VIN and Delivery Date $dataSet = new eoapi_dataset(); $vehicle = $dbConn->Get( 'Vehicle', 'V*'.$vehid ); $vin = $vehicle['VIN']; $deliveryDate = strtotime( $vehicle['DeliveryDate'] ); // Now get the history list $selection = '||' . $vehid; $historyList = new eoapi_dataset(); $dbConn->GetSet( $historyList, 'HistoryList', $selection ); // Since RepairOrderDetail is huge create a custom map for only the history fields $roCustomMap = array( // RO header info 'RONumber', 'ClosedDate', 'Mileage', 'OpenDate', 'ServiceAccount', 'ServiceAdvisor', 'Cashier', // Line Info 'linMultivalueCount', 'linLineCode', 'linBookerNo', 'linComebackFlag', 'linServiceRequest', 'linStoryText', // Labor operation info 'lbrMultivalueCount', 'lbrLaborType', 'lbrLineCode', 'lbrOpCode', 'lbrOpCodeDesc', 'lbrTechNo', 'lbrComebackRO', ); // Set new map on RepairOrderDetail try { $dbConn->setNewMap( 'RepairOrderDetail', 'ServiceHistory', $roCustomMap, BYNAME_CUSTOM_MAP ); } catch ( Exception $ex ) { echo "Service Menus Error: Unable to set custom EOAPI map for RepairOrderDetail"; } $roList = array(); // for #ro_list grid $roLops = array(); // for #ro_lops grid while( $row = $historyList->get_next() ) { $roNumber = $row['RONumber']; // get the RepairOrderDetail $roDetailData = $dbConn->Get( 'RepairOrderDetail', $roNumber . ' ' . $vin ); if ( strtotime( $roDetailData['OpenDate'] ) >= $deliveryDate ) { // Convert XML Dates to mm/dd/yyyy $roDetailData['OpenDate'] = date('m-d-Y', strtotime( $roDetailData['OpenDate'] ) ); $roDetailData['ClosedDate'] = date('m-d-Y', strtotime( $roDetailData['ClosedDate'] ) ); // Add the labor$, parts$, and misc$ from HistoryList $roDetailData['lopLaborSale'] = $row['LopLaborSale']; $roDetailData['lopMiscSale'] = $row['LopMiscSale']; $roDetailData['lopPartsSale'] = $row['LopPartsSale']; // create RO List $roList[] = array( 'RONumber' => $roNumber, 'ClosedDate' => $roDetailData['ClosedDate'], 'Mileage' => $roDetailData['Mileage'], ); // create RO Lops $lbrCount = $roDetailData['lbrMultivalueCount']; $roLops = array(); for ( $i = 0 ; $i < $lbrCount ; $i++ ) { $roLops[] = array( 'lbrLineCode' => $roDetailData['lbrLineCode'][$i], 'lbrOpCodeDesc' => $roDetailData['lbrOpCodeDesc'][$i], ); } $roLopsCount = count( $roLops ); $roResponse['page'] = 1; $roResponse['total'] = 1; $roResponse['records'] = $roLopsCount; $roResponse['rows'] = $roLops; $fileName = '/adp/tmp/'.$vehid.'.'.$roNumber.'.service.menus.ro.lops'; $file = fopen( $fileName, 'w' ); fwrite( $file, json_encode( $roResponse ) ); fclose( $file ); // create RO Detail $fileName = '/adp/tmp/'.$vehid.'.'.$roNumber.'.service.menus.ro.detail'; $file = fopen( $fileName, 'w' ); fwrite( $file, json_encode( $roDetailData ) ); fclose( $file ); } } // while( $row = $histListObj->get_next() ) $dbConn->resetMap(); // sort $roList by RO Number $roNumbers = array(); foreach ( $roList as $key => $row ) { $roNumbers[$key] = $row['RONumber']; } if ( count( $roNumbers ) ) { array_multisort( $roNumbers, SORT_ASC, $roList ); } // Only return $roList here for the ro_list grid $response['page'] = $page; $roCount = count( $roList ); if ( $rows < 0 ) { $rows = $roCount; } if ( $roCount > 0 ) { $totalPages = ceil( $roCount / $rows ); } else { $totalPages = 0; } if ( $page > $totalPages ) { $page = $totalPages; } $response['total'] = $totalPages; $response['records'] = $roCount; $response['rows'] = $roList; echo json_encode( $response ); ?>