/** * add/update agency * @param integer $id */ function showUpdate($campaignID = 0, $id = 0) { $this->data['campaign'] = CampaignBaseModel::find($campaignID); if (Request::isMethod('get')) { $arrWhere = array('campaign_id' => $campaignID, 'id' => $id); $this->data['data'] = $this->model->where($arrWhere)->first(); } else { if ($this->postUpdate($campaignID, $id)) { return Redirect::to("{$this->moduleURL}{$campaignID}/view/{$this->data['id']}"); } } if ($campaignID && $id) { $this->loadLeftMenu('menu.conversionUpdate'); } else { $this->loadLeftMenu('menu.conversionList'); } $this->layout->content = View::make('showUpdate', $this->data); }
/** * handle form add/update agency * @param integer $id */ function postUpdate($id = 0) { // if (Input::get('type') == 'adnetwork') { // Input::merge( // array( // 'publisher_site_id' => 0, // 'publisher_ad_zone_id' => 0 // ) // ); // } // check validate $validate = Validator::make(Input::all(), $this->model->getUpdateRules(), $this->model->getUpdateLangs()); if ($validate->passes()) { $section = Input::get('publisher_site'); $zone = Input::get('publisher_ad_zone'); $campaignId = Input::get('campaign_id'); $costAfterAgencyCommission = str_replace(',', '', Input::get('cost_after_agency_commission')); $publisherCost = str_replace(',', '', Input::get('publisher_cost')); $totalInventory = Input::get('total_inventory'); $baseMediaCost = Input::get('base_media_cost'); $mediaCost = Input::get('media_cost'); $costAfterDiscount = Input::get('cost_after_discount'); $discount = Input::get('discount'); $agencyCommission = Input::get('agency_commission'); $advalueCommission = Input::get('advalue_commission'); $realBaseMediaCost = Input::get('real_base_media_cost'); $realMediaCost = Input::get('real_media_cost'); $retargeting_show = Input::get('retargeting_show'); $retargeting_url = Input::get('retargeting_url'); $retargeting_number = Input::get('retargeting_number'); $listKeyword = Input::get('list_keyword', array()); //use retargeting $retargeting = Input::get('use_retargeting', 2); if ($retargeting == 1) { $operator = Input::get('operator'); $audience_id = Input::get('audience_id'); if ($operator != '' && $audience_id != '') { $audience = json_encode(array('operator' => $operator, 'audience_id' => $audience_id)); } else { $audience = ""; } } else { $audience = ""; } $updateData = array('campaign_id' => $campaignId, 'type' => Input::get('type'), 'status' => Input::get('status'), 'name' => Input::get('name'), 'category_id' => Input::get('category_id'), 'publisher_site_id' => Input::get('publisher_site_id'), 'publisher_ad_zone_id' => Input::get('publisher_ad_zone_id'), 'date' => json_encode(Input::get('date')), 'hour' => json_encode(Input::get('time')), 'end_hour' => Input::get('end_hour'), 'ad_id' => Input::get('ad_id'), 'day' => Input::get('day'), 'country' => json_encode(Input::get('selected_country')), 'province' => json_encode(Input::get('selected_province')), 'age' => json_encode(Input::get('selected_age')), 'sex' => Input::get('sex'), 'cost_type' => Input::get('cost_type'), 'event' => Input::get('event'), 'use_retargeting' => Input::get('use_retargeting', 2), 'total_inventory' => Input::get('total_inventory'), 'value_added' => Input::get('value_added'), 'base_media_cost' => $baseMediaCost, 'media_cost' => $mediaCost, 'real_media_cost' => $realMediaCost, 'real_base_media_cost' => $realBaseMediaCost, 'discount' => $discount, 'cost_after_discount' => Input::get('cost_after_discount'), 'total_cost_after_discount' => str_replace(',', '', Input::get('total_cost_after_discount')), 'agency_commission' => $agencyCommission, 'cost_after_agency_commission' => $costAfterAgencyCommission, 'advalue_commission' => $advalueCommission, 'publisher_cost' => $publisherCost, 'retargeting_url' => $retargeting_url, 'retargeting_show' => $retargeting_show, 'retargeting_number' => $retargeting_number, 'updated_by' => $this->user->id, 'filter' => trim(Input::get('keyword')), 'audience' => $audience); // store sale id from campaign $campaign = CampaignBaseModel::find($campaignId); $updateData['sale_id'] = $campaign->sale_id; // if (empty($section) || empty($zone)) { // $updateData['name'] = 'Run of Network - ' . strtoupper(Input::get('cost_type')); // } else { // $updateData['name'] = $section . ' - ' . $zone; // } // publisher base cost // $updateData['publisher_base_cost'] = $publisherCost / $totalInventory; // total profit $updateData['total_profit'] = $costAfterAgencyCommission - $publisherCost; // company profit $updateData['sale_profit'] = ($realMediaCost - $realBaseMediaCost) * $totalInventory; // sale profit $updateData['company_profit'] = $updateData['total_profit'] - $updateData['sale_profit']; $adModel = new AdBaseModel(); $ad = null; if (Input::get('ad_id')) { $ad = $adModel->find(Input::get('ad_id')); $updateData['ad_format_id'] = $ad->ad_format_id; } //--Start--Phuong-VM add 05-05-2015 $provinceList = Input::get('province'); $provinceSelectedList = Input::get('selected_province'); //--End--Phuong-VM add 05-05-2015 if ($id == 0) { // INSERT if (!empty($ad)) { $ad->is_select = 1; $ad->save(); } $updateData['created_by'] = $this->user->id; if ($item = $this->model->create($updateData)) { $this->data['id'] = $item->id; // if( $item->type == 'premium' ){ // $flightWebsite = new FlightWebsiteBaseModel; // $this->cloneToFlightPublisher($item, $flightWebsite); // } foreach (Input::get('date') as $date) { $flight_date = new FlightDateBaseModel(); $flight_date->flight_id = $item->id; $flight_date->start = date('Y-m-d', strtotime($date['start'])); $flight_date->end = date('Y-m-d', strtotime($date['end'])); $flight_date->diff = $date['diff']; //--Start--Phuong-VM add 08-05-2015 if (isset($date['time']) && !empty($date['time'])) { $flight_date->hour = json_encode($date['time']); } $flight_date->frequency_cap = $date['frequency_cap']; $flight_date->frequency_cap_time = $date['frequency_cap_time']; $flight_date->daily_inventory = $date['daily_inventory']; $flight_date->created_by = $flight_date->updated_by = $this->user->id; //--End--Phuong-VM add 08-05-2015 $flight_date->save(); } Session::flash('flash-message', 'Create Flight Success !'); (new Delivery())->renewCache('flight', $item->id); //INPUT LOGS $dataLog = array('title' => 'Create Flight ID: ' . $item->id, 'content' => json_encode($updateData), 'type_task' => Request::segment(4)); $this->inputLogs($dataLog); return TRUE; } } else { // UPDATE // GET CURRENT ITEM $item = $this->model->find($id); if ($updateData['use_retargeting'] == 2) { $updateData['retargeting_url'] = NULL; $updateData['retargeting_show'] = NULL; $updateData['retargeting_number'] = NULL; } if ($updateData['retargeting_show'] == 2) { $updateData['retargeting_number'] = NULL; } if (!empty($ad)) { if ($item->ad_id != $ad->id) { $ad->is_select = 1; $ad->save(); $oldAd = $adModel->find($item->ad_id); if ($oldAd) { $oldAd->is_select = 0; $oldAd->save(); } } } $arrTmp = FlightDateBaseModel::where('flight_id', $id)->select('id')->get()->toArray(); $oldFlightDate = array(); foreach ($arrTmp as $oldDate) { $oldFlightDate[$oldDate['id']] = $oldDate['id']; } foreach (Input::get('date') as $date) { $flight_date = new FlightDateBaseModel(); //if(!isset($date['id'])){ if (isset($date['id'])) { $flight_date = $flight_date->find($date['id']); unset($oldFlightDate[$date['id']]); $flight_date->updated_by = $this->user->id; } else { $flight_date->created_by = $flight_date->updated_by = $this->user->id; } $flight_date->flight_id = $id; $flight_date->start = date('Y-m-d', strtotime($date['start'])); $flight_date->end = date('Y-m-d', strtotime($date['end'])); $flight_date->diff = $date['diff']; //--Start--Phuong-VM add 08-05-2015 if (!empty($date['time'])) { $flight_date->hour = json_encode($date['time']); } else { $flight_date->hour = ''; } $flight_date->frequency_cap = $date['frequency_cap']; $flight_date->frequency_cap_time = $date['frequency_cap_time']; $flight_date->daily_inventory = $date['daily_inventory']; //--End--Phuong-VM add 08-05-2015 $flight_date->save(); //} } if (!empty($oldFlightDate)) { FlightDateBaseModel::destroy($oldFlightDate); } if ($item) { (new Delivery())->removeCache('flight', $id); if ($item->update($updateData)) { // if( $item->type == 'premium' ){ // $flightWebsite = FlightWebsiteBaseModel::where(array( // 'publisher_id' => $item->publisher_id, // 'flight_id' => $item->id, // 'type' => 'premium' // ))->first(); // if( empty($flightWebsite) ){ // $flightWebsite = new FlightWebsiteBaseModel; // } // $this->cloneToFlightPublisher($item, $flightWebsite); // } (new Delivery())->renewCache('flight', $item->id); Session::flash('flash-message', 'Update Flight Success !'); //INPUT LOGS $dataLog = array('title' => 'Update Flight ID: ' . $item->id, 'content' => json_encode($updateData), 'type_task' => Request::segment(4)); $this->inputLogs($dataLog); return TRUE; } } (new Delivery())->renewCache('flight', $id); } } else { $this->data['errors'] = $validate->messages(); } return FALSE; }
/** * handle form add/update agency * @param integer $id */ function postUpdate($id = 0) { if (Input::get('category_id') == 0) { Input::merge(array('publisher_id' => 0, 'publisher_site_id' => 0, 'publisher_ad_zone_id' => 0)); } // check validate $validate = Validator::make(Input::all(), $this->model->getUpdateRules(), $this->model->getUpdateLangs()); if ($validate->passes()) { $section = Input::get('publisher_site'); $zone = Input::get('publisher_ad_zone'); $campaignId = Input::get('campaign_id'); $costAfterAgencyCommission = str_replace(',', '', Input::get('cost_after_agency_commission')); $publisherCost = str_replace(',', '', Input::get('publisher_cost')); $totalInventory = Input::get('total_inventory'); $baseMediaCost = Input::get('base_media_cost'); $mediaCost = Input::get('media_cost'); $costAfterDiscount = Input::get('cost_after_discount'); $discount = Input::get('discount'); $agencyCommission = Input::get('agency_commission'); $advalueCommission = Input::get('advalue_commission'); $realBaseMediaCost = Input::get('real_base_media_cost'); $realMediaCost = Input::get('real_media_cost'); $updateData = array('campaign_id' => $campaignId, 'category_id' => Input::get('category_id'), 'publisher_id' => Input::get('publisher_id'), 'publisher_site_id' => Input::get('publisher_site_id'), 'publisher_ad_zone_id' => Input::get('publisher_ad_zone_id'), 'flight_objective' => Input::get('flight_objective'), 'allow_over_delivery_report' => Input::get('allow_over_delivery_report'), 'remark' => Input::get('remark'), 'date' => json_encode(Input::get('date')), 'day' => Input::get('day'), 'cost_type' => Input::get('cost_type'), 'total_inventory' => Input::get('total_inventory'), 'value_added' => Input::get('value_added'), 'base_media_cost' => $baseMediaCost, 'media_cost' => $mediaCost, 'real_media_cost' => $realMediaCost, 'real_base_media_cost' => $realBaseMediaCost, 'discount' => $discount, 'cost_after_discount' => Input::get('cost_after_discount'), 'total_cost_after_discount' => str_replace(',', '', Input::get('total_cost_after_discount')), 'agency_commission' => $agencyCommission, 'cost_after_agency_commission' => $costAfterAgencyCommission, 'advalue_commission' => $advalueCommission, 'publisher_cost' => $publisherCost, 'updated_by' => $this->user->id); // store sale id from campaign $campaign = CampaignBaseModel::find($campaignId); $updateData['sale_id'] = $campaign->sale_id; if (empty($section) || empty($zone)) { $updateData['name'] = 'Run of Network - ' . strtoupper(Input::get('cost_type')); } else { $updateData['name'] = $section . ' - ' . $zone; } // publisher base cost $updateData['publisher_base_cost'] = $publisherCost / $totalInventory; // total profit $updateData['total_profit'] = $costAfterAgencyCommission - $publisherCost; // company profit $updateData['sale_profit'] = ($realMediaCost - $realBaseMediaCost) * $totalInventory; // sale profit $updateData['company_profit'] = $updateData['total_profit'] - $updateData['sale_profit']; if ($id == 0) { // INSERT $updateData['created_by'] = $this->user->id; if ($item = $this->model->create($updateData)) { $this->data['id'] = $item->id; return TRUE; } } else { // UPDATE // GET CURRENT ITEM $item = $this->model->find($id); if ($item) { if ($this->model->where("id", $id)->update($updateData)) { return TRUE; } } } } else { $this->data['errors'] = $validate->messages(); } return FALSE; }
public function reportExportConversion() { $this->layout = null; $input = Input::all(); if (!empty($input['cid'])) { $cids = $input['cid']; $campaignID = $input['campaign_id']; $trackingConversionModel = new TrackingConversionBaseModel(); $campaign = CampaignBaseModel::find($campaignID); if (!empty($campaign) && '' != $campaign->name) { $listConversionSummary = $trackingConversionModel->getConversionSummary($campaignID); $excel = Excel::create("Report_Conversion_Of_{$campaign->name}"); $excel = $this->reportExportConversionCampaign($excel, array('campaign' => $campaign, 'listConversionSummary' => $listConversionSummary)); } else { $excel = Excel::create('report_conversion'); } foreach ($cids as $cid) { $conversion = ConversionBaseModel::find($cid); $listConversionTracking = $trackingConversionModel->where('conversion_id', $cid)->get(); if (!empty($listConversionTracking)) { $excel = $this->reportExportConversionDetail($excel, array('conversion' => $conversion, 'listConversionTracking' => $listConversionTracking)); } } $excel->export('xls'); } }