PHP 7.4.33
Preview: CourierService.php Size: 73.66 KB
/home/godevadmin/public_html/include/CourierService.php

<?php

  



    

    class CourierService extends Courrier

    {

        //Configuration

        const AccessLicenseNumber = "ED58E56438B88ECC";

        const UserID = "MyValue365";

        const Password = "hPawha365";

        const Operation = "ProcessRate";

        const EndPointTracking="https://onlinetools.ups.com/rest/Track";

        /*

         * Production

         */

        //const EndPointURL = 'https://onlinetools.ups.com/rest/Rate';

        //const EndPointShippingURL = 'https://onlinetools.ups.com/rest/Ship';

        

        /*

         * Test

         */

        const EndPointURL = 'https://onlinetools.ups.com/rest/Rate';

        //const EndPointURL = 'https://onlinetools.ups.com/rest/Track';

        const EndPointShippingURL = 'https://onlinetools.ups.com/ship/v1807/shipments?additionaladdressvalidation=city';

        const EndPointUrlTimeInTransit= "https://onlinetools.ups.com/rest/TimeInTransit";

    

    

        private  $DBObject;

        public function __construct(&$obj)

        {

            /**

             * ounce, pound, gram

             **/

           // print_r($obj);

            //echo 'asdasd';

            $this->DBObject=$obj;

            

            $this->setRequestOption("Rate");

            

            $this->setPickupTypeCode("01");

            $this->setPickupTypeDescription("Daily Pickup");

            

            $this->setCustomerClassificationCode("01");

            $this->setCustomerClassificationDescription("Classfication");

            

            $this->setValidateAddress('no_validation');

            /**

             * Shipper Address

             */

            

            $this->setShipperNumber("222006");

            $this->setShipperName("MyValue365");

            $this->setShipperCity("Chicago");

            $this->setShipperCountryCode("US");

            $this->setShipperStateProvinceCode("IL");

            $this->setShipperPostalCode("60610");

            $this->setShipperAddressLine("1400 N Lakeshore Drive");

            

            //small medium large

            

            

            $this->setDimensionsUnit("inches");

            $this->setDimensionsUnitCode("IN");

            

            $this->setServiceCode("03");

            $this->setServiceDesciption("UPS Ground");

            

            

            $this->setUnit("pounds");

            $this->setUnitCode("Lbs");

            

            

            

            $this->setPackagingCode("02");

            $this->setPackagingDescription("Package");

            

        }

        

        public function getRates()

        {

            try {

                $this->ValidateRequest();

                

                

                if ($this->getCarrier() === 'UPS') {

                    $jsonData = $this->BuildRateRequest();

                    $header = array(

                        'Content-type: application/json',

                        'Content-Length: ' . strlen($jsonData)

                    );

                    

                    $carrierResponse = $this->CurlRquest($this::EndPointURL, $jsonData, $header);

                    $carrierResponse_array = (json_decode($carrierResponse, true));

                    $status = false;

                    if (isset($carrierResponse_array['RateResponse']['Response']['ResponseStatus']['Description']) && $carrierResponse_array['RateResponse']['Response']['ResponseStatus']['Description'] == 'Success')

                        $status = true;

                    

                    echo json_encode(Array(

                        'Status' => array(

                            "result" => $status,

                            "message" => '',

                            "CarrierResponse" => json_decode($carrierResponse)

                        )

                    ));

                    

                }

                

                

            } catch

            (Exception $ex) {

                $this->setError($ex->getMessage());

            }

        }

        

        public function getShippingLabel()

        {

            try {

                $this->ValidateRequest();

                if ($this->getCarrier() === 'UPS') {

                    

                    

                    $jsonData = $this->BuildLabelRequest();

                    $jsonDataBase64= base64_encode($jsonData);

                   // echo "select * from tbl_order where id='".$this->getOrderNumber()."'";

                    //print_r($this->DBObject);

                    $query="select * from tbl_order_label where order_id='".$this->getOrderNumber()."' and label_parameters='".$jsonDataBase64."' and status='Active'";

                    $sql = $this->DBObject->query($query);

    

    

                    $result = $this->DBObject->fetchNextObject($sql);

                    

                    if(isset($result->id) and $result->id>0 ){

                        $carrierResponse_array['Status']['CarrierResponse']['ShipmentResponse']['ShipmentResults']['PackageResults']['ShippingLabel']['GraphicImage']=$result->label_file;

                        $carrierResponse_array['Status']['CarrierResponse']['ShipmentResponse']['ShipmentResults']['PackageResults']['TrackingNumber']=$result->label;

                        //$trackingNo = $label->Status->CarrierResponse->ShipmentResponse->ShipmentResults->PackageResults->TrackingNumber;

                        

                       // $print_label = '<img src="data:image/png;base64,' . $label->Status->CarrierResponse->ShipmentResponse->ShipmentResults->PackageResults->ShippingLabel->GraphicImage . '"/>';

                        //print_r($carrierResponse_array);

                        return json_encode($carrierResponse_array);

                        exit;

                    }

                    //print_r($result);

                    //exit;

                    

                    //echo $jsonData ;

                    // exit;

                    

                    $header = array(

                        'AccessLicenseNumber: '.$this::AccessLicenseNumber,

                        'Password: '. $this::Password,

                        'transId: Transaction123',

                        'transactionSrc: GG',

                        'Username: '. $this::UserID,

                        'Content-type: application/json',

                        'Content-Length: ' . strlen($jsonData)

                    );

                    $carrierResponse = $this->CurlRquest($this::EndPointShippingURL, $jsonData, $header);

                   // print_r($carrierResponse);

                    $carrierResponse_array = (json_decode($carrierResponse, true));

                    $status = false;

                    if (isset($carrierResponse_array['ShipmentResponse']['Response']['ResponseStatus']['Description']) && $carrierResponse_array['ShipmentResponse']['Response']['ResponseStatus']['Description'] == 'Success'){

                        $status = true;

                        

                        //echo '<pre>';

                       // print_r($carrierResponse_array['ShipmentResponse']['ShipmentResults']['PackageResults']['ShippingLabel']['GraphicImage']);

                         $GraphicImage=$carrierResponse_array['ShipmentResponse']['ShipmentResults']['PackageResults']['ShippingLabel']['GraphicImage'] ;

                        $TrackingNumber=$carrierResponse_array['ShipmentResponse']['ShipmentResults']['PackageResults']['TrackingNumber'] ;

    

                        $updateQuery="update tbl_order_label set status='InActive'  where order_id='".$this->getOrderNumber()."' and storeid='".$this->getStoreID()."'";

                        $this->DBObject->query($updateQuery);

                        

                        

                       $insertQuery="insert into tbl_order_label set storeid='".$this->getStoreID()."',order_id='".$this->getOrderNumber()."',label_parameters='".$jsonDataBase64."',label_file='".$GraphicImage."',label='".$TrackingNumber."',created_by='".$_SESSION['sess_admin_id']."'";
					   
                        $this->DBObject->query($insertQuery);

                    }

                    

                    if($status==false){
                    $error_messsage=json_decode($carrierResponse);
                    throw new Exception($error_messsage->response->errors[0]->message);
                    }

                    return json_encode(Array(

                        'Status' => array(

                            "result" => $status,

                            "message" => '',

                            "CarrierResponse" => json_decode($carrierResponse)

                        )

                    ));

                    

                }

                

                

            } catch

            (Exception $ex) {

                $this->setError($ex->getMessage());

            }

        }

        function getEstimateDeliveryDate($estmateDArray) {

           

            $bodyContent = array(

                "Security" => array(

                    "UsernameToken" => array(

                        "Username" => $this::UserID,

                        "Password" => $this::Password

                    ),

                    "UPSServiceAccessToken" => array(

                        "AccessLicenseNumber" => $this::AccessLicenseNumber

                    )

                ),

                "TimeInTransitRequest" => array(

                    "Request" => array(

                        "RequestOption" => 'TNT',

                        "TransactionReference" => array(

                            "CustomerContext" => "Test 002"

                        )

                    ), "ShipFrom" => array(

                        "Address" => array(

                            "StateProvinceCode" => $estmateDArray['StateProvinceCodeShipper'],

                            "CountryCode" => $estmateDArray['CountryCodeShipper'],

                            "PostalCode" => $estmateDArray['PostalCodeShipper']

                        )

                    ), "ShipTo" => array(

                        "Address" => array(

                            "StateProvinceCode" => $estmateDArray['StateProvinceCodeShipTo'],

                            "CountryCode" => $estmateDArray['CountryCodeShipTo'],

                            "PostalCode" => $estmateDArray['PostalCodeShipTo']

                        )

                    ), "Pickup" => array(

                        "Date" => $estmateDArray['PickupDate'],

                        "Time" => "120221"

                    ), "ShipmentWeight" => array(

                        "UnitOfMeasurement" => array(

                            "Code" => $estmateDArray['UnitOfMeasurement'],

                            "Description" => "Description"

                        ),

                        "Weight" => $estmateDArray['Weight']

                    ),

                    "MaximumListSize" => '50'

                )

            );

        

            $params = json_encode($bodyContent);

             //print_r($params);

            

        

            $headers = array();

            $headers[] = 'Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept';

            $headers[] = 'Access-Control-Allow-Methods: POST';

            $headers[] = 'Access-Control-Allow-Origin: *';

            $headers[] = 'Content-Type: application/json';

        

            $ch = curl_init();

            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

            curl_setopt($ch, CURLOPT_TIMEOUT, 45);

            curl_setopt($ch, CURLOPT_URL, $this::EndPointUrlTimeInTransit );

            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

            curl_setopt($ch, CURLOPT_POST, 1);

            curl_setopt($ch, CURLOPT_POSTFIELDS, $params);

            $response = curl_exec($ch);

        

            // CHECK TO SEE IF WE GOT AN ERROR

            // IF SO, FORMAT IT LIKE THIS   ::28::Operation timed out afterseconds

            if ((curl_errno($ch)) && (curl_errno($ch) != 0)) {

                $response = "::" . curl_errno($ch) . "::" . curl_error($ch);

            }

            //echo '<pre>';

            $responseJson = json_decode($response);

            //print_r(json_decode($response));

            if (isset($responseJson->Fault)) {

                // echo 'Error';

            } else {

                if (isset($responseJson->TimeInTransitResponse->Response->ResponseStatus)) {

                    if ($responseJson->TimeInTransitResponse->Response->ResponseStatus->Code == '1' && $responseJson->TimeInTransitResponse->Response->ResponseStatus->Description == 'Success') {

                        //print_r($responseJson);

                        if (isset($responseJson->TimeInTransitResponse->TransitResponse->ServiceSummary)) {

                            foreach ($responseJson->TimeInTransitResponse->TransitResponse->ServiceSummary as $Summary) {

                                // print_r($Summary->Service->Description);

                                if (isset($Summary->Service->Description) && strtoupper($Summary->Service->Description) == strtoupper($estmateDArray['ServiceDescription'])) {

                                    //echo $estmateDArray['ServiceDescription'];

                                    return $Summary->EstimatedArrival->Arrival->Date;

                                }

                            }

                        }

                    }

                }

            }

        }

        public function getTrackingDetail()

        {

            $query="select * from tbl_order_label where label='".$this->getTrackingNumber()."'";

            $sql = $this->DBObject->query($query);

    

    

            $result = $this->DBObject->fetchNextObject($sql);

    

            if(isset($result->delivery_date) and $result->delivery_date!=''){

               

                $originalDate = $result->delivery_date;

                $delivery_date = date("d/m/Y", strtotime($originalDate));

                echo json_encode(array('PickupDate' => '', 'Delivery' => array('Status' => '0', 'Date' =>$delivery_date, 'Description' => 'DELIVERED')));

                exit;

            }

            // echo 'Start';

            $PostalCodeShipper = $StateProvinceCodeShipper = $CountryCodeShipper = $PostalCodeShipTo = $StateProvinceCodeShipTo = $CountryCodeShipTo = '';

            $UnitOfMeasurement = $Weight = $ServiceCode = $ServiceDescription = $PickupDate = $EstimateDeliveryDate = $DeliveryDate = $DeliveryDescription = '';

            $DeliveredToCustomer = '0';

    

            try {

                

                $bodyContent = array(

                    "Security" => array(

                        "UsernameToken" => array(

                            "Username" => $this::UserID,

                            "Password" => $this::Password

                        ),

                        "UPSServiceAccessToken" => array(

                            "AccessLicenseNumber" => $this::AccessLicenseNumber

                        )

                    ),

                    "TrackRequest" => array(

                        "Request" => array(

                            "RequestOption" => 1,

                            "TransactionReference" => array(

                                "CustomerContext" => "Test 002"

                            )

                        ),

                        "InquiryNumber" => $this->getTrackingNumber()

                    )

                );

                

                $params = json_encode($bodyContent);

               // echo $params;

                $headers = array();

                $headers[] = 'Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept';

                $headers[] = 'Access-Control-Allow-Methods: POST';

                $headers[] = 'Access-Control-Allow-Origin: *';

                $headers[] = 'Content-Type: application/json';

                

                $ch = curl_init();

                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

                curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

                curl_setopt($ch, CURLOPT_TIMEOUT, 45);

                curl_setopt($ch, CURLOPT_URL, self::EndPointTracking);

                curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

                curl_setopt($ch, CURLOPT_POST, 1);

                curl_setopt($ch, CURLOPT_POSTFIELDS, $params);

                $response = curl_exec($ch);

    

               // print_r($response);

                if ((curl_errno($ch)) && (curl_errno($ch) != 0)) {

                    

                    echo json_encode(array('PickupDate' => $PickupDate, 'Delivery' => array('Status' => $DeliveredToCustomer, 'Date' => $DeliveryDate, 'Description' => $DeliveryDescription)));

                    // echo 'Error';

                    exit;

                }

    

                

                $responseJson = json_decode($response);

                

                if (isset($responseJson->Fault)) {

                    echo json_encode(array('PickupDate' => $PickupDate, 'Delivery' => array('Status' => $DeliveredToCustomer, 'Date' => $DeliveryDate, 'Description' => $DeliveryDescription)));

                    // echo 'Error';

                    exit;

                    

                } else {

                    if (isset($responseJson->TrackResponse->Response->ResponseStatus)) {

                        

                        if ($responseJson->TrackResponse->Response->ResponseStatus->Code == '1' && $responseJson->TrackResponse->Response->ResponseStatus->Description == 'Success') {

                            if ($responseJson->TrackResponse->Shipment->ShipmentAddress[0]->Type->Code == '01' && $responseJson->TrackResponse->Shipment->ShipmentAddress[0]->Type->Description == 'Shipper Address') {

                                $PostalCodeShipper = $responseJson->TrackResponse->Shipment->ShipmentAddress[0]->Address->PostalCode;

                                $StateProvinceCodeShipper = $responseJson->TrackResponse->Shipment->ShipmentAddress[0]->Address->StateProvinceCode;

                                $CountryCodeShipper = $responseJson->TrackResponse->Shipment->ShipmentAddress[0]->Address->CountryCode;

                            }

                            if ($responseJson->TrackResponse->Shipment->ShipmentAddress[1]->Type->Code == '02' && $responseJson->TrackResponse->Shipment->ShipmentAddress[1]->Type->Description == 'ShipTo Address') {

                                $PostalCodeShipTo = $responseJson->TrackResponse->Shipment->ShipmentAddress[1]->Address->PostalCode;

                                $StateProvinceCodeShipTo = $responseJson->TrackResponse->Shipment->ShipmentAddress[1]->Address->StateProvinceCode;

                                $CountryCodeShipTo = $responseJson->TrackResponse->Shipment->ShipmentAddress[1]->Address->CountryCode;

                            }

                            if ($responseJson->TrackResponse->Shipment->ShipmentWeight) {

                                $UnitOfMeasurement = $responseJson->TrackResponse->Shipment->ShipmentWeight->UnitOfMeasurement->Code;

                                $Weight = $responseJson->TrackResponse->Shipment->ShipmentWeight->Weight;

                            }

                            if ($responseJson->TrackResponse->Shipment->Service) {

                                $ServiceCode = $responseJson->TrackResponse->Shipment->Service->Code;

                                $ServiceDescription = $responseJson->TrackResponse->Shipment->Service->Description;

                            }

                            if ($responseJson->TrackResponse->Shipment->PickupDate) {

                                $PDate = $responseJson->TrackResponse->Shipment->PickupDate;

                                

                                $PickupDate = $PDate;

                            }

                            //print_r($response);

                            if (isset($responseJson->TrackResponse->Shipment->Package->Activity)) {

                                foreach ($responseJson->TrackResponse->Shipment->Package->Activity as $activity) {

    

                                   // print_r($activity);

                                    if (isset($activity->Status->Type) && $activity->Status->Type == 'D') {

                                        $DeliveryDate = $activity->Date;

                                        $DeliveryDescription = $activity->Status->Description;

                                        if ($activity->Status->Code == 'KB' || $activity->Status->Code == 'KM' || $activity->Status->Code == '2W' || $activity->Status->Code == 'F4')

                                            $DeliveredToCustomer = '1';

        

                                        if ($activity->Status->Code == 'ZP' || $activity->Status->Code == 'LZ' || $activity->Status->Code == 'S7' || $activity->Status->Code == 'VE' || $activity->Status->Code == 'VF' || $activity->Status->Code == '5E' || $activity->Status->Code == '6B' || $activity->Status->Code == '5R')

                                            $DeliveredToCustomer = '2';

        

                                    } elseif (isset($activity->Status->Type) && $activity->Status->Type == 'X') {

                                        if ($activity->Status->Code == '5R') {

                                            $DeliveredToCustomer = '2';

                                            $DeliveryDate = $activity->Date;

                                            $DeliveryDescription = $activity->Status->Description;

                                        }

        

                                    }

    

                                }

                            }

                            if ($DeliveryDate == '') {

                                if (isset($responseJson->TrackResponse->Shipment->DeliveryDetail->Type->Code) && $responseJson->TrackResponse->Shipment->DeliveryDetail->Type->Code == "03") {

                                    $EstimateDeliveryDate = $responseJson->TrackResponse->Shipment->DeliveryDetail->Date;

                                   

                                }

                                

                                if (isset($responseJson->TrackResponse->Shipment->Package->DeliveryDetail->Type->Code) && $responseJson->TrackResponse->Shipment->Package->DeliveryDetail->Type->Code == "04") {

                                    $EstimateDeliveryDate = $responseJson->TrackResponse->Shipment->Package->DeliveryDetail->Date;

                                    

                                }

                                

                                if ($EstimateDeliveryDate == '') {

                                    $estmateDArray = array('PostalCodeShipper' => $PostalCodeShipper,

                                        'StateProvinceCodeShipper' => $StateProvinceCodeShipper,

                                        'CountryCodeShipper' => $CountryCodeShipper, 'PostalCodeShipTo' => $PostalCodeShipTo,

                                        'StateProvinceCodeShipTo' => $StateProvinceCodeShipTo, 'CountryCodeShipTo' => $CountryCodeShipTo

                                    , 'UnitOfMeasurement' => $UnitOfMeasurement, 'Weight' => $Weight

                                    , 'ServiceCode' => $ServiceCode, 'ServiceDescription' => $ServiceDescription, 'PickupDate' => $PickupDate);

                                    $EstimateDeliveryDate = $this->getEstimateDeliveryDate($estmateDArray);

                                }

                            }

                        }

                    }

                }

                if ($EstimateDeliveryDate != ''){

                    $EstimateDeliveryDate1 =substr($EstimateDeliveryDate, 0, 4) . '/' . substr($EstimateDeliveryDate, 4, 2) . '/' . substr($EstimateDeliveryDate, 6, 2);

                    $EstimateDeliveryDate = substr($EstimateDeliveryDate, 4, 2) . '/' . substr($EstimateDeliveryDate, 6, 2) . '/' . substr($EstimateDeliveryDate, 0, 4);

                    

                    $updateQuery="update tbl_order_label set estimate_delivery_date='".$EstimateDeliveryDate1."'  where label='".$this->getTrackingNumber()."'";

                    $this->DBObject->query($updateQuery);

                }

                if ($PickupDate != '') {

                    $PickupDate1 =substr($PickupDate, 0, 4) . '/' . substr($PickupDate, 4, 2) . '/' . substr($PickupDate, 6, 2);

                    $PickupDate = substr($PickupDate, 4, 2) . '/' . substr($PickupDate, 6, 2) . '/' . substr($PickupDate, 0, 4);

                    

                    $updateQuery="update tbl_order_label set pick_up_date='".$PickupDate1."'  where label='".$this->getTrackingNumber()."'";

                    $this->DBObject->query($updateQuery);

                }

                if ($DeliveryDate != '') {

                    $DeliveryDate1 =substr($DeliveryDate, 0, 4) . '/' . substr($DeliveryDate, 4, 2) . '/' . substr($DeliveryDate, 6, 2);

                    $DeliveryDate = substr($DeliveryDate, 4, 2) . '/' . substr($DeliveryDate, 6, 2) . '/' . substr($DeliveryDate, 0, 4);

                   

                    $updateQuery="update tbl_order_label set delivery_date='".$DeliveryDate1."'  where label='".$this->getTrackingNumber()."'";

                    $this->DBObject->query($updateQuery);

                }

    

                

                if ($DeliveredToCustomer == '0' && $DeliveryDate == '')

                    $DeliveryDate = $EstimateDeliveryDate;

    

                echo json_encode(array('PickupDate' => $PickupDate, 'Delivery' => array('Status' => $DeliveredToCustomer, 'Date' => $DeliveryDate, 'Description' => $DeliveryDescription)));

                exit;

                

                

            } catch

            (Exception $ex) {

                //echo $ex->getMessage();

                $this->setError($ex->getMessage());

            }

        }

        

        public function getZone(){

            try {

                

              $this->ValidateZoneRequest();

                //echo 'asdasdasd';

                $query_zone="select * from tbl_zipe_to_zone where zipe_code=LEFT('".$this->getShipToPostalCode()."' , 3)  and store_id='".$this->getStoreID()."' and status='Active'";

                $sql_zone = $this->DBObject->query($query_zone);

    

    

                $result_zone = $this->DBObject->fetchNextObject($sql_zone);

    

                if(isset($result_zone->store_id) and $result_zone->store_id>0 ){

    

                    $query_zipcodes="select * from tbl_us_zipcodes where zipCode='".$this->getShipToPostalCode()."'";

                    $sql_zipcodes = $this->DBObject->query($query_zipcodes);

    

                    $result = $this->DBObject->fetchNextObject($sql_zipcodes);

                    if(isset($result->id) and $result->id>0 ) {

                        $carrierResponse_array['Status']['result']  = true;

                        $carrierResponse_array['Status']['message']  = 'Sucess';

                        $carrierResponse_array['Status']['ZoneResponse']['id'] = $result->id;

                        $carrierResponse_array['Status']['ZoneResponse']['zone'] = $result_zone->zone;

                        $carrierResponse_array['Status']['ZoneResponse']['zipCode'] = $result->zipCode;

                        $carrierResponse_array['Status']['ZoneResponse']['zipType'] = $result->zipType;

                        $carrierResponse_array['Status']['ZoneResponse']['postOfficeCity'] = $result->postOfficeCity;

                        $carrierResponse_array['Status']['ZoneResponse']['state'] = $result->state;

                        $carrierResponse_array['Status']['ZoneResponse']['stateCode'] = $result->stateCode;

                        $carrierResponse_array['Status']['ZoneResponse']['county'] = $result->county;

                        $carrierResponse_array['Status']['ZoneResponse']['areaCode'] = $result->areaCode;

                        $carrierResponse_array['Status']['ZoneResponse']['longitude'] = $result->longitude;

                        $carrierResponse_array['Status']['ZoneResponse']['latitude'] = $result->latitude;

                        $carrierResponse_array['Status']['ZoneResponse']['population'] = $result->population;

                        $carrierResponse_array['Status']['ZoneResponse']['populationDensity'] = $result->populationDensity;

                        $carrierResponse_array['Status']['ZoneResponse']['housingUnits'] = $result->housingUnits;

                        $carrierResponse_array['Status']['ZoneResponse']['medianHomeValue'] = $result->medianHomeValue;

                        $carrierResponse_array['Status']['ZoneResponse']['occupiedHousingUnits'] = $result->occupiedHousingUnits;

                        $carrierResponse_array['Status']['ZoneResponse']['medianHouseholdIncome'] = $result->medianHouseholdIncome;

                        $carrierResponse_array['Status']['ZoneResponse']['waterArea'] = $result->waterArea;

                        $carrierResponse_array['Status']['ZoneResponse']['landArea'] = $result->landArea;

                        $carrierResponse_array['Status']['ZoneResponse']['timezone'] = $result->timezone;

                        return json_encode($carrierResponse_array);

                        exit;

                    }

                    

                    

                    

                }

    

                echo json_encode(Array(

                    'Status' => array(

                        "result" => false,

                        "message" => '',

                        "ZoneResponse" => ''

                    )

                ));

        

        

            } catch

            (Exception $ex) {

                $this->setError($ex->getMessage());

            }

        }

        

    }

    

    class Courrier

    {

        /*********** Variables ************************/

        const Error_101 = 'Invalid or empty Ship To Name';

        const Error_102 = 'Invalid or empty Ship To Phone';

        const Error_103 = 'Invalid or empty Ship To Company Name';

        const Error_104 = 'Invalid or empty Ship To Address line';

        const Error_105 = 'Invalid or empty Ship To City';

        const Error_106 = 'Invalid or empty Ship To State';

        const Error_107 = 'Invalid or empty Ship To Postal Code';

        const Error_108 = 'Invalid or empty Ship From Name';

        const Error_109 = 'Invalid or empty Ship From Phone';

        const Error_110 = 'Invalid or empty Ship From Company Name';

        const Error_111 = 'Invalid or empty Ship From Address line';

        const Error_112 = 'Invalid or empty Ship From City';

        const Error_113 = 'Invalid or empty Ship From State';

        const Error_114 = 'Invalid or empty Ship From Postal Code';

        const Error_115 = 'Invalid or empty Weight';

        const Error_116 = 'Invalid or empty Carrier';

        const Error_117 = 'Request is not well formated';

        const Error_118 = 'Method Not Allowed';

        const Error_119 = 'Error in Request';

        const Error_120 = 'Validate Address is not valid';

        const Error_121 = 'Invalid or empty Order Number';

        const Error_122 = 'Invalid or empty Store ID';

        private $Error = '';

        private $is_Error = false;

        private $Validate_Address = "";

        private $Ship_To_Name = "";

        private $Ship_To_Phone = "";

        private $Ship_To_Company_Name = "";

        private $Ship_To_Address_Line1 = "";

        private $Ship_To_Address_Line2 = "";

        private $Ship_To_City_Locality = "";

        private $Ship_To_State_Province = "";

        private $Ship_To_Postal_Code = "";

        private $Ship_To_Country_Code = "";

        private $Ship_From_Name = "";

        private $Ship_From_Phone = "";

        private $Ship_From_Company_Name = "";

        private $Ship_From_Address_Line1 = "";

        private $Ship_From_Address_Line2 = "";

        private $Ship_From_City_Locality = "";

        private $Ship_From_State_Province = "";

        private $Ship_From_Postal_Code = "";

        private $Ship_From_Country_Code = "";

        private $Ship_From__Tax_Identification_Number = "";

        private $Weight = "";

        private $Unit = "";

        private $DimensionsUnit = "";

        private $Dimensions_Length = "";

        private $Dimensions_Width = "";

        private $Dimensions_Height = "";

        private $Carrier = "";

        private $Service_Code = "";

        private $Service_Desciption = "";

        private $ShipperNumber = "";

        private $Shipper_AddressLine = "";

        private $Shipper_City = "";

        private $Shipper_StateProvinceCode = "";

        private $Shipper_PostalCode = "";

        private $Shipper_CountryCode = "";

        /**

         * @var string

         */

        private $Shipper_Name = "";

        private $Request_Option = "";

        private $Pickup_Type_Code = "";

        private $Pickup_Type_Description = "";

        private $Customer_Classification_Code = "";

        private $Customer_Classification_Description = "";

        private $Dimensions_Unit_Code = "";

        private $Unit_Code = "";

        private $Packaging_Code = "";

        private $Packaging_Description = "";

        private $Transaction_Reference = "";

        private $Box_Type = "";

        private $Shipper_Attention_Name = "";

        private $Shipper_Tax_Identification_Number = "";

        private $Shipper_Phone_Number = "";

        private $Shipper_Fax_Number = "";

        private $trackingNumber="";

        private $orderNumber = "";

        private $storeID = "";

    

        /**

         * @return string

         */

        public function getStoreID()

        {

            return $this->storeID;

        }

    

        /**

         * @param string $storeID

         */

        public function setStoreID($storeID)

        {

            $this->storeID = $storeID;

        }

    

        /**

         * @return string

         */

        public function getOrderNumber()

        {

            return $this->orderNumber;

        }

    

        /**

         * @param string $orderNumber

         */

        public function setOrderNumber($orderNumber)

        {

            $this->orderNumber = $orderNumber;

        }

        

        /**

         * @return string

         */

        public function getShipFromTaxIdentificationNumber()

        {

            return $this->Ship_From__Tax_Identification_Number;

        }

        

        /*********** Variables ************************/

        /**

         * @return string

         */

        public function getTrackingNumber()

        {

            return $this->trackingNumber;

        }

        

        /**

         * @param string $trackingNumber

         */

        public function setTrackingNumber($trackingNumber)

        {

            $this->trackingNumber = $trackingNumber;

        }

        /**

         * @param string $Ship_From__Tax_Identification_Number

         */

        public function setShipFromTaxIdentificationNumber($Ship_From__Tax_Identification_Number)

        {

            $this->Ship_From__Tax_Identification_Number = $Ship_From__Tax_Identification_Number;

        }

        

        /**

         * @return string

         */

        public function getShipperFaxNumber()

        {

            return $this->Shipper_Fax_Number;

        }

        

        /**

         * @param string $Shipper_Fax_Number

         */

        public function setShipperFaxNumber($Shipper_Fax_Number)

        {

            $this->Shipper_Fax_Number = $Shipper_Fax_Number;

        }

        

        /**

         * @return string

         */

        public function getBoxType()

        {

            return $this->Box_Type;

        }

        

        /**

         * @param string $Box_Type

         */

        public function setBoxType($Box_Type)

        {

            $this->Box_Type = $Box_Type;

            if ($Box_Type == "Small") {

                $this->setDimensionsHeight("10");

                $this->setDimensionsLength("10");

                $this->setDimensionsWidth("12");

            }

            if ($Box_Type == "Medium") {

                $this->setDimensionsHeight("16");

                $this->setDimensionsLength("18");

                $this->setDimensionsWidth("18");

            }

            if ($Box_Type == "Large") {

                $this->setDimensionsHeight("24");

                $this->setDimensionsLength("18");

                $this->setDimensionsWidth("18");

            }

        }

        

        /**

         * @param string $Dimensions_Height

         */

        private function setDimensionsHeight($Dimensions_Height)

        {

            $this->Dimensions_Height = $Dimensions_Height;

        }

        

        /**

         * @param string $Dimensions_Length

         */

        private function setDimensionsLength($Dimensions_Length)

        {

            $this->Dimensions_Length = $Dimensions_Length;

        }

        

        /**

         * @param string $Dimensions_Width

         */

        private function setDimensionsWidth($Dimensions_Width)

        {

            $this->Dimensions_Width = $Dimensions_Width;

        }

        

        /**

         * @return string

         */

        public function getPickupTypeCode()

        {

            return $this->Pickup_Type_Code;

        }

        

        /**

         * @param string $Pickup_Type_Code

         */

        public function setPickupTypeCode($Pickup_Type_Code)

        {

            $this->Pickup_Type_Code = $Pickup_Type_Code;

        }

        

        /**

         * @return string

         */

        public function getPickupTypeDescription()

        {

            return $this->Pickup_Type_Description;

        }

        

        /**

         * @param string $Pickup_Type_Description

         */

        public function setPickupTypeDescription($Pickup_Type_Description)

        {

            $this->Pickup_Type_Description = $Pickup_Type_Description;

        }

        

        /**

         * @return string

         */

        public function getCustomerClassificationCode()

        {

            return $this->Customer_Classification_Code;

        }

        

        /**

         * @param string $Customer_Classification_Code

         */

        public function setCustomerClassificationCode($Customer_Classification_Code)

        {

            $this->Customer_Classification_Code = $Customer_Classification_Code;

        }

        

        /**

         * @return string

         */

        public function getCustomerClassificationDescription()

        {

            return $this->Customer_Classification_Description;

        }

        

        /**

         * @param string $Customer_Classification_Description

         */

        public function setCustomerClassificationDescription($Customer_Classification_Description)

        {

            $this->Customer_Classification_Description = $Customer_Classification_Description;

        }

        

        /**

         * @return string

         */

        public function getError()

        {

            return $this->Error;

        }

        

        /**

         * @param string $Error

         */

        public function setError($Error)

        {

            $this->is_Error = true;

            $this->Error = json_encode(Array(

                'Status' => array(

                    "result" => false,

                    "message" => $Error

                )

            ));

        }

        

        /**

         * @return string

         */

        public function getShipToAddressLine2()

        {

            return $this->Ship_To_Address_Line2;

        }

        

        /**

         * @param string $Ship_To_Address_Line2

         */

        public function setShipToAddressLine2($Ship_To_Address_Line2)

        {

            $this->Ship_To_Address_Line2 = $Ship_To_Address_Line2;

        }

        

        /**

         * @return string

         */

        public function getShipFromAddressLine2()

        {

            return $this->Ship_From_Address_Line2;

        }

        

        /**

         * @param string $Ship_From_Address_Line2

         */

        public function setShipFromAddressLine2($Ship_From_Address_Line2)

        {

            $this->Ship_From_Address_Line2 = $Ship_From_Address_Line2;

        }

        public function ValidateZoneRequest(){

         if ($this->getStoreID() === "") {

                throw new Exception(self::Error_122);

            }

             elseif ($this->getShipToPostalCode() === "") {

                throw new Exception(self::Error_107);

            }

        }

        public function ValidateRequest()

        {

            if ($this->getValidateAddress() === "" || ($this->getValidateAddress() !== "no_validation" && $this->getValidateAddress() !== "validate_only" && $this->getValidateAddress() !== "validate_and_clean")) {

                // $this->setError(self::Error_120);

                throw new Exception(self::Error_120);

            } elseif ($this->getShipToName() === "") {

                //$this->setError(self::Error_101);

                throw new Exception(self::Error_101);

            } /*elseif ($this->getShipToPhone() === "") {

            $this->setError(self::Error_102);

        }

        elseif ($this->getShipToCompanyName() === "") {

            $this->setError(self::Error_103);

        } */

            

            elseif ($this->getShipToAddressLine1() === "") {

                // $this->setError(self::Error_104);

                throw new Exception(self::Error_104);

            } elseif ($this->getShipToCityLocality() === "") {

                throw new Exception(self::Error_105);

                //$this->setError(self::Error_105);

            } elseif ($this->getShipToStateProvince() === "") {

                //$this->setError(self::Error_106);

                throw new Exception(self::Error_106);

            } elseif ($this->getShipToPostalCode() === "") {

                //$this->setError(self::Error_107);

                throw new Exception(self::Error_107);

            } elseif ($this->getShipFromName() === "") {

                //$this->setError(self::Error_108);

                throw new Exception(self::Error_108);

            } /*elseif ($this->getShipFromPhone() === "") {

            $this->setError(self::Error_109);

        } elseif ($this->getShipFromCompanyName() === "") {

            $this->setError(self::Error_110);

        }*/

            elseif ($this->getShipFromAddressLine1() === "") {

                //$this->setError(self::Error_111);

                throw new Exception(self::Error_111);

            } elseif ($this->getShipFromCityLocality() === "") {

                //$this->setError(self::Error_112);

                throw new Exception(self::Error_112);

            } elseif ($this->getShipFromStateProvince() === "") {

                //$this->setError(self::Error_113);

                throw new Exception(self::Error_113);

            } elseif ($this->getShipFromPostalCode() === "") {

                //$this->setError(self::Error_114);

                throw new Exception(self::Error_114);

            } elseif ($this->getWeight() === "") {

                //$this->setError(self::Error_115);

                throw new Exception(self::Error_115);

            } elseif ($this->getCarrier() === "") {

                //$this->setError(self::Error_116);

                throw new Exception(self::Error_116);

            }

            elseif ($this->getOrderNumber() === "") {

                //$this->setError(self::Error_116);

                throw new Exception(self::Error_121);

            }

    

            

            

        }

        

        /**

         * @return string

         */

        public function getValidateAddress()

        {

            return $this->Validate_Address;

        }

        

        /**

         * @param string $Validate_Address

         */

        public function setValidateAddress($Validate_Address)

        {

            

            $this->Validate_Address = $Validate_Address;

        }

        

        /**

         * @return string

         */

        public function getShipToName()

        {

            return $this->Ship_To_Name;

        }

        

        /**

         * @param string $Ship_To_Name

         */

        public function setShipToName($Ship_To_Name)

        {

            $this->Ship_To_Name = $Ship_To_Name;

        }

        

        /**

         * @return string

         */

        public function getShipToAddressLine1()

        {

            return $this->Ship_To_Address_Line1;

        }

        

        /**

         * @param string $Ship_To_Address_Line1

         */

        public function setShipToAddressLine1($Ship_To_Address_Line1)

        {

            $this->Ship_To_Address_Line1 = $Ship_To_Address_Line1;

        }

        

        /**

         * @return string

         */

        public function getShipToCityLocality()

        {

            return $this->Ship_To_City_Locality;

        }

        

        /**

         * @param string $Ship_To_City_Locality

         */

        public function setShipToCityLocality($Ship_To_City_Locality)

        {

            $this->Ship_To_City_Locality = $Ship_To_City_Locality;

        }

        

        /**

         * @return string

         */

        public function getShipToStateProvince()

        {

            return $this->Ship_To_State_Province;

        }

        

        /**

         * @param string $Ship_To_State_Province

         */

        public function setShipToStateProvince($Ship_To_State_Province)

        {

            $this->Ship_To_State_Province = $Ship_To_State_Province;

        }

        

        /**

         * @return string

         */

        public function getShipToPostalCode()

        {

            return $this->Ship_To_Postal_Code;

        }

        

        /**

         * @param string $Ship_To_Postal_Code

         */

        public function setShipToPostalCode($Ship_To_Postal_Code)

        {

            $this->Ship_To_Postal_Code = $Ship_To_Postal_Code;

        }

        

        /**

         * @return string

         */

        public function getShipFromName()

        {

            return $this->Ship_From_Name;

        }

        

        /**

         * @param string $Ship_From_Name

         */

        public function setShipFromName($Ship_From_Name)

        {

            $this->Ship_From_Name = $Ship_From_Name;

        }

        

        /**

         * @return string

         */

        public function getShipFromAddressLine1()

        {

            return $this->Ship_From_Address_Line1;

        }

        

        /**

         * @param string $Ship_From_Address_Line1

         */

        public function setShipFromAddressLine1($Ship_From_Address_Line1)

        {

            $this->Ship_From_Address_Line1 = $Ship_From_Address_Line1;

        }

        

        /**

         * @return string

         */

        public function getShipFromCityLocality()

        {

            return $this->Ship_From_City_Locality;

        }

        

        /**

         * @param string $Ship_From_City_Locality

         */

        public function setShipFromCityLocality($Ship_From_City_Locality)

        {

            $this->Ship_From_City_Locality = $Ship_From_City_Locality;

        }

        

        /**

         * @return string

         */

        public function getShipFromStateProvince()

        {

            return $this->Ship_From_State_Province;

        }

        

        /**

         * @param string $Ship_From_State_Province

         */

        public function setShipFromStateProvince($Ship_From_State_Province)

        {

            $this->Ship_From_State_Province = $Ship_From_State_Province;

        }

        

        /**

         * @return string

         */

        public function getShipFromPostalCode()

        {

            return $this->Ship_From_Postal_Code;

        }

        

        /**

         * @param string $Ship_From_Postal_Code

         */

        public function setShipFromPostalCode($Ship_From_Postal_Code)

        {

            $this->Ship_From_Postal_Code = $Ship_From_Postal_Code;

        }

        

        /**

         * @return string

         */

        public function getWeight()

        {

            return $this->Weight;

        }

        

        /**

         * @param string $Weight

         */

        public function setWeight($Weight)

        {

            $this->Weight = $Weight;

        }

        

        /**

         * @return string

         */

        public function getCarrier()

        {

            return $this->Carrier;

        }

        

        /**

         * @param string $Carrier

         */

        public function setCarrier($Carrier)

        {

            $this->Carrier = $Carrier;

        }

        

        public function BuildLabelRequest()

        {

            

            

            //create soap request

            

            

            $Shipper['Name'] = $this->getShipperName();

            $Shipper['AttentionName'] = $this->getShipperAttentionName();

            $Shipper['TaxIdentificationNumber'] = $this->getShipper_Tax_Identification_Number();

            $Shipper['Phone'] = array('Number' => $this->getShipperPhoneNumber());

            $Shipper['ShipperNumber'] = $this->getShipperNumber();

            $Address['AddressLine'] = $this->getShipperAddressLine();

            $Address['City'] = $this->getShipperCity();

            $Address['StateProvinceCode'] = $this->getShipperStateProvinceCode();

            $Address['PostalCode'] = $this->getShipperPostalCode();

            $Address['CountryCode'] = $this->getShipperCountryCode();

            $Shipper['Address'] = $Address;

            $Shipment['Description'] = 'MyValue365 Grocery';

            $Shipment['Shipper'] = $Shipper;

            

            

            $ShipTo['Name'] = $this->getShipToName();

            $ShipTo['Phone'] = array('Number' => $this->getShipToPhone());

            $AddressTo['AddressLine'] = $this->getShipToAddressLine1();

            $AddressTo['City'] = $this->getShipToCityLocality();

            $AddressTo['StateProvinceCode'] = $this->getShipToStateProvince();

            $AddressTo['PostalCode'] = $this->getShipToPostalCode();

            $AddressTo['CountryCode'] = $this->getShipToCountryCode();

            $AddressTo['ResidentialAddressIndicator'] = '';

            $ShipTo['Address'] = $AddressTo;

            $Shipment['ShipTo'] = $ShipTo;

            

            $ShipFrom['Name'] = $this->getShipFromName();

            $ShipFrom['TaxIdentificationNumber'] = $this->getShipper_Tax_Identification_Number();

            $ShipFrom['Phone'] = array('Number' => $this->getShipFromPhone());

            $AddressFrom['AddressLine'] = $this->getShipFromAddressLine1();

            $AddressFrom['City'] = $this->getShipFromCityLocality();

            $AddressFrom['StateProvinceCode'] = $this->getShipFromStateProvince();

            $AddressFrom['PostalCode'] = $this->getShipFromPostalCode();

            $AddressFrom['CountryCode'] = $this->getShipFromCountryCode();

            $ShipFrom['Address'] = $AddressFrom;

            $Shipment['ShipFrom'] = $ShipFrom;

            

            

            $Shipment['PaymentInformation'] = array('ShipmentCharge' => array('Type' => '01', 'BillShipper' => array('AccountNumber' => $this->getShipperNumber())));

            

            $service['Code'] = $this->getServiceCode();

            $service['Description'] = $this->getServiceDesciption();

            $Shipment['Service'] = $service;

            

            $packaging1['Code'] = $this->getPackagingCode();

            //$packaging1['Description'] = $this->getPackagingDescription();

            $package1['Packaging'] = $packaging1;

            $dunit1['Code'] = $this->getDimensionsUnitCode();

            $dunit1['Description'] = $this->getDimensionsUnit();

            $dimensions1['UnitOfMeasurement'] = $dunit1;

            $dimensions1['Length'] = $this->getDimensionsLength();

            $dimensions1['Width'] = $this->getDimensionsWidth();

            $dimensions1['Height'] = $this->getDimensionsHeight();

            

            //$package1['Dimensions'] = $dimensions1;

            $punit1['Code'] = $this->getUnitCode();

            //$punit1['Description'] = $this->getUnit();

            $packageweight1['Weight'] = $this->getWeight();

            $packageweight1['UnitOfMeasurement'] = $punit1;

            $package1['PackageWeight'] = $packageweight1;

            

            

            $Shipment['Package'] = array($package1);

            $Shipment['ShipmentServiceOptions'] = '';

            $Shipment['LargePackageIndicator'] = '';

            $Request['Shipment'] = $Shipment;

            $Request['LabelSpecification'] = array('LabelImageFormat' => array('Code' => 'GIF'));

            

            

            $RateRequest["ShipmentRequest"] = $Request;

            

            

            //echo "Request.......\n";

            //print_r(json_encode($RateRequest));

            //echo "\n\n";

            return json_encode($RateRequest);

        }

        

        /**

         * @return string

         */

        public function getShipperName()

        {

            return $this->Shipper_Name;

        }

        

        /**

         * @param string $Shipper_Name

         */

        public function setShipperName($Shipper_Name)

        {

            $this->Shipper_Name = $Shipper_Name;

        }

        

        /**

         * @return string

         */

        public function getShipperAttentionName()

        {

            return $this->Shipper_Attention_Name;

        }

        

        /**

         * @param string $Shipper_Attention_Name

         */

        public function setShipperAttentionName($Shipper_Attention_Name)

        {

            $this->Shipper_Attention_Name = $Shipper_Attention_Name;

        }

        

        /**

         * @return string

         */

        public function getShipper_Tax_Identification_Number()

        {

            return $this->Shipper_Tax_Identification_Number;

        }

        

        /**

         * @param string $Shipper_Tax_Identification_Number

         */

        public function setShipper_Tax_Identification_Number($Shipper_Tax_Identification_Number)

        {

            $this->Shipper_Tax_Identification_Number = $Shipper_Tax_Identification_Number;

        }

        

        /**

         * @return string

         */

        public function getShipperPhoneNumber()

        {

            return $this->Shipper_Phone_Number;

        }

        

        /**

         * @param string $Shipper_Phone_Number

         */

        public function setShipperPhoneNumber($Shipper_Phone_Number)

        {

            $this->Shipper_Phone_Number = $Shipper_Phone_Number;

        }

        

        /**

         * @return string

         */

        public function getShipperNumber()

        {

            return $this->ShipperNumber;

        }

        

        /**

         * @param string $ShipperNumber

         */

        public function setShipperNumber($ShipperNumber)

        {

            $this->ShipperNumber = $ShipperNumber;

        }

        

        /**

         * @return string

         */

        public function getShipperAddressLine()

        {

            return $this->Shipper_AddressLine;

        }

        

        /**

         * @param string $Shipper_AddressLine

         */

        public function setShipperAddressLine($Shipper_AddressLine)

        {

            $this->Shipper_AddressLine = $Shipper_AddressLine;

        }

        

        /**

         * @return string

         */

        public function getShipperCity()

        {

            return $this->Shipper_City;

        }

        

        /**

         * @param string $Shipper_City

         */

        public function setShipperCity($Shipper_City)

        {

            $this->Shipper_City = $Shipper_City;

        }

        

        /**

         * @return string

         */

        public function getShipperStateProvinceCode()

        {

            return $this->Shipper_StateProvinceCode;

        }

        

        /**

         * @param string $Shipper_StateProvinceCode

         */

        public function setShipperStateProvinceCode($Shipper_StateProvinceCode)

        {

            $this->Shipper_StateProvinceCode = $Shipper_StateProvinceCode;

        }

        

        /**

         * @return string

         */

        public function getShipperPostalCode()

        {

            return $this->Shipper_PostalCode;

        }

        

        /**

         * @param string $Shipper_PostalCode

         */

        public function setShipperPostalCode($Shipper_PostalCode)

        {

            $this->Shipper_PostalCode = $Shipper_PostalCode;

        }

        

        /**

         * @return string

         */

        public function getShipperCountryCode()

        {

            return $this->Shipper_CountryCode;

        }

        

        /**

         * @param string $Shipper_CountryCode

         */

        public function setShipperCountryCode($Shipper_CountryCode)

        {

            $this->Shipper_CountryCode = $Shipper_CountryCode;

        }

        

        /**

         * @return string

         */

        public function getShipToPhone()

        {

            return $this->Ship_To_Phone;

        }

        

        /**

         * @param string $Ship_To_Phone

         */

        public function setShipToPhone($Ship_To_Phone)

        {

            $this->Ship_To_Phone = $Ship_To_Phone;

        }

        

        /**

         * @return string

         */

        public function getShipToCountryCode()

        {

            return $this->Ship_To_Country_Code;

        }

        

        /**

         * @param string $Ship_To_Country_Code

         */

        public function setShipToCountryCode($Ship_To_Country_Code)

        {

            $this->Ship_To_Country_Code = $Ship_To_Country_Code;

        }

        

        /**

         * @return string

         */

        public function getShipFromPhone()

        {

            return $this->Ship_From_Phone;

        }

        

        /**

         * @param string $Ship_From_Phone

         */

        public function setShipFromPhone($Ship_From_Phone)

        {

            $this->Ship_From_Phone = $Ship_From_Phone;

        }

        

        /**

         * @return string

         */

        public function getShipFromCountryCode()

        {

            return $this->Ship_From_Country_Code;

        }

        

        /**

         * @param string $Ship_From_Country_Code

         */

        public function setShipFromCountryCode($Ship_From_Country_Code)

        {

            $this->Ship_From_Country_Code = $Ship_From_Country_Code;

        }

        

        /**

         * @return string

         */

        public function getServiceCode()

        {

            return $this->Service_Code;

        }

        

        /**

         * @param string $Service_Code

         */

        public function setServiceCode($Service_Code)

        {

            $this->Service_Code = $Service_Code;

        }

        

        /**

         * @return string

         */

        public function getServiceDesciption()

        {

            return $this->Service_Desciption;

        }

        

        /**

         * @param string $Service_Desciption

         */

        public function setServiceDesciption($Service_Desciption)

        {

            $this->Service_Desciption = $Service_Desciption;

        }

        

        /**

         * @return string

         */

        public function getPackagingCode()

        {

            return $this->Packaging_Code;

        }

        

        /**

         * @param string $Packaging_Code

         */

        public function setPackagingCode($Packaging_Code)

        {

            $this->Packaging_Code = $Packaging_Code;

        }

        

        /**

         * @return string

         */

        public function getDimensionsUnitCode()

        {

            return $this->Dimensions_Unit_Code;

        }

        

        /**

         * @param string $Dimensions_Unit_Code

         */

        public function setDimensionsUnitCode($Dimensions_Unit_Code)

        {

            $this->Dimensions_Unit_Code = $Dimensions_Unit_Code;

        }

        

        /**

         * @return string

         */

        public function getDimensionsUnit()

        {

            return $this->DimensionsUnit;

        }

        

        /**

         * @param string $DimensionsUnit

         */

        public function setDimensionsUnit($DimensionsUnit)

        {

            $this->DimensionsUnit = $DimensionsUnit;

        }

        

        /**

         * @return string

         */

        public function getDimensionsLength()

        {

            return $this->Dimensions_Length;

        }

        

        /**

         * @return string

         */

        public function getDimensionsWidth()

        {

            return $this->Dimensions_Width;

        }

        

        /**

         * @return string

         */

        public function getDimensionsHeight()

        {

            return $this->Dimensions_Height;

        }

        

        /**

         * @return string

         */

        public function getUnitCode()

        {

            return $this->Unit_Code;

        }

        

        /**

         * @param string $Unit_Code

         */

        public function setUnitCode($Unit_Code)

        {

            $this->Unit_Code = $Unit_Code;

        }

        

        public function BuildRateRequest()

        {

            

            

            //create soap request

            

            $UsernameToken['Username'] = $this::UserID;

            $UsernameToken['Password'] = $this::Password;

            $ServiceAccessToken['AccessLicenseNumber'] = $this::AccessLicenseNumber;

            

            $UPSSecurity['UsernameToken'] = $UsernameToken;

            $UPSSecurity['ServiceAccessToken'] = $ServiceAccessToken;

            

            $Option['RequestOption'] = $this->getRequestOption();

            $TransactionReference['CustomerContext'] = $this->getTransactionReference();

            $Option['TransactionReference'] = $TransactionReference;

            $Request['Request'] = $Option;

            

            // $PickupType['Code'] = $this->getPickupTypeCode();

            // $PickupType['Description'] = $this->getPickupTypeDescription();

            // $Request['PickupType'] = $PickupType;

            

            //$CustomerClassification['Code'] = $this->getCustomerClassificationCode();

            //$CustomerClassification['Description'] = $this->getCustomerClassificationDescription();

            //$Request['CustomerClassification'] = $CustomerClassification;

            

            $Shipper['Name'] = $this->getShipperName();

            $Shipper['ShipperNumber'] = $this->getShipperNumber();

            $Address['AddressLine'] = array($this->getShipperAddressLine());

            $Address['City'] = $this->getShipperCity();

            $Address['StateProvinceCode'] = $this->getShipperStateProvinceCode();

            $Address['PostalCode'] = $this->getShipperPostalCode();

            $Address['CountryCode'] = $this->getShipperCountryCode();

            $Shipper['Address'] = $Address;

            $Shipment['Shipper'] = $Shipper;

            

            $ShipFrom['Name'] = $this->getShipFromName();

            $AddressFrom['AddressLine'] = array($this->getShipFromAddressLine1());

            $AddressFrom['City'] = $this->getShipFromCityLocality();

            $AddressFrom['StateProvinceCode'] = $this->getShipFromStateProvince();

            $AddressFrom['PostalCode'] = $this->getShipFromPostalCode();

            $AddressFrom['CountryCode'] = $this->getShipFromCountryCode();

            $ShipFrom['Address'] = $AddressFrom;

            $Shipment['ShipFrom'] = $ShipFrom;

            

            

            $ShipTo['Name'] = $this->getShipToName();

            $AddressTo['AddressLine'] = array($this->getShipToAddressLine1());

            $AddressTo['City'] = $this->getShipToCityLocality();

            $AddressTo['StateProvinceCode'] = $this->getShipToStateProvince();

            $AddressTo['PostalCode'] = $this->getShipToPostalCode();

            $AddressTo['CountryCode'] = $this->getShipToCountryCode();

            $AddressTo['ResidentialAddressIndicator'] = '';

            $ShipTo['Address'] = $AddressTo;

            $Shipment['ShipTo'] = $ShipTo;

            

            

            $service['Code'] = $this->getServiceCode();

            $service['Description'] = $this->getServiceDesciption();

            $Shipment['Service'] = $service;

            

            $packaging1['Code'] = $this->getPackagingCode();

            $packaging1['Description'] = $this->getPackagingDescription();

            $package1['PackagingType'] = $packaging1;

            $dunit1['Code'] = $this->getDimensionsUnitCode();

            $dunit1['Description'] = $this->getDimensionsUnit();

            $dimensions1['UnitOfMeasurement'] = $dunit1;

            $dimensions1['Length'] = $this->getDimensionsLength();

            $dimensions1['Width'] = $this->getDimensionsWidth();

            $dimensions1['Height'] = $this->getDimensionsHeight();

            

            $package1['Dimensions'] = $dimensions1;

            $punit1['Code'] = $this->getUnitCode();

            $punit1['Description'] = $this->getUnit();

            $packageweight1['Weight'] = $this->getWeight();

            $packageweight1['UnitOfMeasurement'] = $punit1;

            $package1['PackageWeight'] = $packageweight1;

            

            

            $Shipment['Package'] = array($package1);

            $Shipment['ShipmentServiceOptions'] = '';

            $Shipment['LargePackageIndicator'] = '';

            $Request['Shipment'] = $Shipment;

            $RateRequest["UPSSecurity"] = $UPSSecurity;

            $RateRequest["RateRequest"] = $Request;

            

            

            //echo "Request.......\n";

            //print_r(json_encode($RateRequest));

            // echo "\n\n";

            return json_encode($RateRequest);

        }

        

        /**

         * @return string

         */

        public function getRequestOption()

        {

            return $this->Request_Option;

        }

        

        /**

         * @param string $Request_Option

         */

        public function setRequestOption($Request_Option)

        {

            $this->Request_Option = $Request_Option;

        }

        

        /**

         * @return string

         */

        public function getTransactionReference()

        {

            return $this->Transaction_Reference;

        }

        

        /**

         * @param string $Transaction_Reference

         */

        public function setTransactionReference($Transaction_Reference)

        {

            $this->Transaction_Reference = $Transaction_Reference;

        }

        

        /**

         * @return string

         */

        public function getPackagingDescription()

        {

            return $this->Packaging_Description;

        }

        

        /**

         * @param string $Packaging_Description

         */

        public function setPackagingDescription($Packaging_Description)

        {

            $this->Packaging_Description = $Packaging_Description;

        }

        

        /**

         * @return string

         */

        public function getUnit()

        {

            return $this->Unit;

        }

        

        /**

         * @param string $Unit

         */

        public function setUnit($Unit)

        {

            $this->Unit = $Unit;

        }

        

        public function CurlRquest($urlEndpoint, $jsonData, $header)

        {

            

            

            $curl_options = array(

                CURLOPT_URL => $urlEndpoint,

                CURLOPT_SSL_VERIFYPEER => false, //implemented to perform a TRUST on the server certificate

                CURLOPT_FRESH_CONNECT => true,

                CURLOPT_RETURNTRANSFER => true,

                CURLOPT_HTTPHEADER => $header,

                CURLOPT_POST => true,

                CURLOPT_POSTFIELDS => $jsonData

            );

//print_r($curl_options);

            $ch = curl_init();

            curl_setopt_array($ch, $curl_options);

            

            $result = curl_exec($ch);

            

            //Log Response or Error

            if ($result !== false) {

                //  Error;

            } else {

                //  Error;

            }

            

            //Close the handle

            curl_close($ch);

            //echo "<pre>";

            //print_r($result);

            

            return ($result);

        }

        

        /**

         * @return string

         */

        public function getShipToCompanyName()

        {

            return $this->Ship_To_Company_Name;

        }

        

        /**

         * @param string $Ship_To_Company_Name

         */

        public function setShipToCompanyName($Ship_To_Company_Name)

        {

            $this->Ship_To_Company_Name = $Ship_To_Company_Name;

        }

        

        /**

         * @return string

         */

        public function getShipFromCompanyName()

        {

            return $this->Ship_From_Company_Name;

        }

        

        /**

         * @param string $Ship_From_Company_Name

         */

        public function setShipFromCompanyName($Ship_From_Company_Name)

        {

            $this->Ship_From_Company_Name = $Ship_From_Company_Name;

        }

        

        /**

         * @return bool

         */

        public function isError()

        {

            return $this->is_Error;

        }

    }



?>

Directory Contents

Dirs: 1 × Files: 25

Name Size Perms Modified Actions
ckeditor DIR
- drwxrwxr-x 2023-11-07 20:00:00
Edit Download
649 B lrwxrwxr-x 2023-11-07 19:59:58
Edit Download
649 B lrwxrwxr-x 2023-11-07 19:59:58
Edit Download
4.71 KB lrwxrwxr-x 2023-11-07 19:59:58
Edit Download
4.10 KB lrwxrwxr-x 2025-01-22 14:39:16
Edit Download
3.97 KB lrwxrwxr-x 2023-11-22 20:59:28
Edit Download
4.04 KB lrwxrwxr-x 2024-02-22 09:17:20
Edit Download
73.66 KB lrwxrwxr-x 2023-11-07 19:59:58
Edit Download
46.75 KB lrwxrwxr-x 2023-11-07 19:59:58
Edit Download
1.79 KB lrwxrwxr-x 2023-11-07 19:59:58
Edit Download
1.79 KB lrwxrwxr-x 2023-11-07 19:59:58
Edit Download
69.77 KB lrwxrwxr-x 2023-11-07 19:59:58
Edit Download
11.18 KB lrwxrwxr-x 2023-11-18 00:41:42
Edit Download
25.88 KB lrwxrwxr-x 2025-12-08 14:24:06
Edit Download
14.21 KB lrwxrwxr-x 2023-11-07 20:00:00
Edit Download
4.54 KB lrwxrwxr-x 2023-11-07 20:00:00
Edit Download
43.90 KB lrwxrwxr-x 2023-11-07 20:00:00
Edit Download
6.63 KB lrwxrwxr-x 2023-11-07 20:00:00
Edit Download
554 B lrwxrwxr-x 2023-11-07 20:00:00
Edit Download
3.36 KB lrwxrwxr-x 2023-11-07 20:00:00
Edit Download
3.28 KB lrwxrwxr-x 2023-11-07 20:00:00
Edit Download
1.08 KB lrwxrwxr-x 2023-11-07 20:00:00
Edit Download
3.35 KB lrwxrwxr-x 2023-11-07 20:00:00
Edit Download
2.18 KB lrwxrwxr-x 2023-11-07 20:00:00
Edit Download
2.39 KB lrwxrwxr-x 2023-11-07 20:00:00
Edit Download
15.41 KB lrwxrwxr-x 2023-11-07 20:00:00
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).