Пример #1
0
 public function actionTesInquiry()
 {
     $model = new InquiryForm();
     if (isset($_POST['InquiryForm'])) {
         $model->setAttributes($_POST['InquiryForm']);
         $model->validate();
     }
     $this->render('tesInquiry', array('model' => $model));
 }
Пример #2
0
 public function actionGetGroceryRate()
 {
     $inquiry = new InquiryForm('api-rate-grocery');
     $req = Yii::app()->request;
     $inquiryMap = new CMap();
     $inquiryMap->add('receiver_postal', $req->getQuery('receiver_postal'));
     $inquiryMap->add('service_code', $req->getQuery('service_code'));
     $inquiry->setAttributes($inquiryMap->toArray());
     if (!$inquiry->validate()) {
         echo CJSON::encode($this->statusError($inquiry->getErrors()));
         Yii::app()->end();
     }
     $service_code = ProductService::model()->findByAttributes(array('code' => strtoupper($inquiry->service_code)));
     if (!$service_code instanceof ProductService) {
         echo CJSON::encode($this->statusError('No Service Available'));
         Yii::app()->end();
     } else {
         if ($service_code->code != 'LSX' && $service_code->code != 'HRX') {
             echo CJSON::encode($this->statusError('This service is not available'));
             Yii::app()->end();
         }
     }
     $routing = IntraCityRouting::model()->findByAttributes(array('postcode' => $inquiry->receiver_postal));
     if ($routing instanceof IntraCityRouting) {
         $area = Area::getZoneID($inquiry->receiver_postal, 'postcode');
         if (!$area) {
             echo CJSON::encode($this->statusError('No Available Service'));
             Yii::app()->end();
         }
         $rates = RateCity::getCityRate(ProductService::ProductCityCourier, $routing->code, 5);
         $rate = array();
         foreach ($rates as $key) {
             if ($key['service_code'] == $inquiry->service_code) {
                 $rate = $key;
             }
         }
         $product = 'City Courier';
         echo CJSON::encode($this->statusSuccess(array('service_type' => $product, 'rate' => $rate)));
         Yii::app()->end();
     } else {
         $result = array('status' => 'success', 'result' => $data);
     }
     echo CJSON::encode($result);
     Yii::app()->end();
 }
 public function actionCreateInquiry($cid)
 {
     $shipment = new Shipment();
     $inquiry = new InquiryForm();
     Yii::app()->user->setState('Shipment-items', '');
     Yii::app()->user->setState('Shipment-add_costs', '');
     Yii::app()->user->setState('Shipment', '');
     $items[] = new ShipmentItem();
     $costs[] = new ShipmentAdditionalCharge();
     $customer = Customer::model()->findByPk($cid);
     $contact = Contact::model()->find('parent_model=:pm and parent_id=:pid', array(':pm' => 'Customer', ':pid' => $customer->id));
     $good_types = GoodType::model()->findAll();
     $shipment->type = 'document';
     $inquiry->pickup_date = date('m/d/Y', time());
     if (isset($_POST['InquiryForm']) && isset($_POST['Shipment'])) {
         $shipment->setScenario('insert');
         $inquiry->setAttributes($_POST['InquiryForm']);
         if ($inquiry->validate()) {
             $shipment->setAttributes($inquiry->attributes);
         }
         $shipment->setAttributes($_POST['Shipment']);
         /*
          * shipment items
          */
         if ($shipment->validate()) {
             $shipment_items = $_POST['ShipmentItem'];
             $items = array();
             $weight_to_count = array();
             foreach ($shipment_items as $item) {
                 $shipment_item = new ShipmentItem();
                 $shipment_item->setScenario('inquiry');
                 $shipment_item->attributes = $item;
                 if ($shipment_item->validate()) {
                     $items[] = $shipment_item;
                     Yii::app()->user->setState('Shipment-items', $items);
                     array_push($weight_to_count, $shipment_item->getWeightToCount());
                 }
             }
             $shipment->package_weight = array_sum($weight_to_count);
             /*
              * shipment additional costs
              */
             $shipment_costs = $_POST['ShipmentAdditionalCharge'];
             $costs = array();
             $arr_costs = array();
             foreach ($shipment_costs as $cost) {
                 $shipment_costs = new ShipmentAdditionalCharge();
                 $shipment_costs->setScenario('inquiry');
                 $shipment_costs->attributes = $cost;
                 if ($shipment_costs->validate()) {
                     $costs[] = $shipment_costs;
                     Yii::app()->user->setState('Shipment-add_costs', $costs);
                     array_push($arr_costs, $shipment_costs->cost);
                 }
             }
             $total_add_cost = array_sum($arr_costs);
             $shipment->charges = $shipment->shipping_charges + $total_add_cost + $shipment->cod;
             Yii::app()->user->setState('Shipment', $shipment);
             $this->redirect(array('view'));
         }
     }
     $shipment->pickup_address = $contact->address;
     $shipment->payer = 'shipper';
     $shipment->pay_by = 'account';
     $inquiry->shipper_city = 'Jakarta';
     $inquiry->shipper_country = 'Indonesia';
     $data_render = array('inquiry' => $inquiry, 'customer' => $customer, 'good_types' => $good_types, 'items' => $items, 'costs' => $costs, 'contact' => $contact, 'shipment' => $shipment);
     $this->render('createInquiry', $data_render);
 }