public function actionTesInquiry() { $model = new InquiryForm(); if (isset($_POST['InquiryForm'])) { $model->setAttributes($_POST['InquiryForm']); $model->validate(); } $this->render('tesInquiry', array('model' => $model)); }
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); }