Beispiel #1
0
 function exportAction()
 {
     // make sure we have a valid ID
     $id = AF::get($this->params, 'id', FALSE);
     if (!$id) {
         throw new AFHttpException(0, 'no_id');
     }
     $connectionModel = new Fulfillment();
     $connectionModel->findByPk($id);
     $model0 = new FulfillmentField();
     $model1 = new FulfillmentFields('FulfillmentField');
     $model2 = new Order();
     $model3 = new Payment();
     $model4 = new Click();
     // grab fields assigned to fulfillment_id
     $assignedFields = $model1->getFulfillmentFieldsByFulfillmentId($id);
     $assignColumns = array();
     $assignedOColumns = array();
     $assignedPColumns = array();
     $assignedCColumns = array();
     foreach ($assignedFields as $af) {
         $assignColumns[] = $af['fulfillment_field_column'];
         if ($af['fulfillment_field_model'] == 'order') {
             $assignedOColumns[] = $af['fulfillment_field_column'];
         } else {
             if ($af['fulfillment_field_model'] == 'payment') {
                 $assignedPColumns[] = $af['fulfillment_field_column'];
             } else {
                 if ($af['fulfillment_field_model'] == 'click') {
                     $assignedCColumns[] = $af['fulfillment_field_column'];
                 }
             }
         }
     }
     // build fieldsArray to be used in the "default" export columns selection.  don't include fields that are already assigned
     $fields = $model1->getFulfillmentFieldsByFulfillmentId(0);
     $fieldsArray = array();
     $parentsArray = array();
     foreach ($fields as $field) {
         if ($field['fulfillment_field_model'] == 'parent') {
             $parentsArray[] = array("fulfillment_field_column" => $field['fulfillment_field_column'], "fulfillment_field_name" => $field['fulfillment_field_name'], "fulfillment_field_model" => $field['fulfillment_field_model'], "checked" => false, "fulfillment_field_rank" => '', "fulfillment_field_static" => '');
         } else {
             if (!in_array($field['fulfillment_field_column'], $assignColumns)) {
                 $fieldsArray[] = array("fulfillment_field_column" => $field['fulfillment_field_column'], "fulfillment_field_name" => $field['fulfillment_field_name'], "fulfillment_field_model" => $field['fulfillment_field_model'], "checked" => false, "fulfillment_field_rank" => '', "fulfillment_field_static" => '');
             }
         }
         // , "rank"=>$idex++
     }
     // build orderFieldsArray to be used in the "additional order" export columns selection.  don't include fields that are already assigned
     $oFields = $model2->attributeLabels();
     $oKeys = array_keys($oFields);
     $oFieldsArray = array();
     foreach ($oKeys as $field) {
         if (!in_array($field, $assignedOColumns)) {
             $oFieldsArray[] = array("fulfillment_field_column" => $field, "fulfillment_field_name" => $oFields[$field], "fulfillment_field_model" => 'order', "checked" => false, "fulfillment_field_rank" => '', "fulfillment_field_static" => '');
         }
         // , "rank"=>$idex++
     }
     // build paymentFieldsArray to be used in the "additional payment" export columns selection.  don't include fields that are already assigned
     $pFields = $model3->attributeLabels();
     $pKeys = array_keys($pFields);
     $pFieldsArray = array();
     foreach ($pKeys as $field) {
         if (!in_array($field, $assignedPColumns)) {
             $pFieldsArray[] = array("fulfillment_field_column" => $field, "fulfillment_field_name" => $pFields[$field], "fulfillment_field_model" => 'payment', "checked" => false, "fulfillment_field_rank" => '', "fulfillment_field_static" => '');
         }
         // , "rank"=>$idex++
     }
     // build cFieldsArray to be used in the "additional click" export columns selection.  don't include fields that are already assigned
     $cFields = $model4->attributeLabels();
     $cKeys = array_keys($cFields);
     $cFieldsArray = array();
     foreach ($cKeys as $field) {
         if (!in_array($field, $assignedCColumns)) {
             $cFieldsArray[] = array("fulfillment_field_column" => $field, "fulfillment_field_name" => $cFields[$field], "fulfillment_field_model" => 'click', "checked" => false, "fulfillment_field_rank" => '', "fulfillment_field_static" => '');
         }
         // , "rank"=>$idex++
     }
     // preload the JQX assets
     Assets::css('jqwidgets/jqx.base');
     Assets::js('jqwidgets/jqxcore');
     Assets::js('jqwidgets/jqxdata');
     Assets::js('jqwidgets/jqxbuttons');
     Assets::js('jqwidgets/jqxscrollbar');
     Assets::js('jqwidgets/jqxmenu');
     Assets::js('jqwidgets/jqxcheckbox');
     Assets::js('jqwidgets/jqxlistbox');
     Assets::js('jqwidgets/jqxdropdownlist');
     Assets::js('jqwidgets/jqxgrid');
     Assets::js('jqwidgets/jqxgrid.edit');
     Assets::js('jqwidgets/jqxgrid.selection');
     Assets::js('jqwidgets/jqxdata.export');
     Assets::js('jqwidgets/jqxgrid.export');
     Assets::js('jqwidgets/jqxgrid.columnsresize');
     Assets::js('jqwidgets/jqxdropdownbutton');
     $this->render('export', array('model' => $model0, 'connectionModel' => $connectionModel, 'defaultFields' => $fieldsArray, 'assignedFields' => $assignedFields, 'orderFields' => $oFieldsArray, 'paymentCCFields' => $pFieldsArray, 'clickFields' => $cFieldsArray, 'parentFields' => $parentsArray));
 }