/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $model = new MarriageRecord(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['MarriageRecord'])) { $model->attributes = $_POST['MarriageRecord']; if ($model->save()) { if (isset($model->groom_id) and $model->groom_id and !isset($model->groom->marriage_dt)) { $groom = $model->groom; $groom->marriage_dt = $model->marriage_dt; Yii::trace("MRC.create groom " . $groom->id . " marriage_dt " . $groom->marriage_dt . ".", 'application.controllers.MarriageRecordsController'); if (!$groom->save(true, array('marriage_dt'))) { $errors = $groom->getErrors(); foreach ($errors as $errs) { $err = implode(', ', $errs); Yii::trace("MRC.create groom failed: {$err}", 'application.controllers.MarriageRecordsController'); } } } if (isset($model->bride_id) and $model->bride_id and !isset($model->bride->marriage_dt)) { $bride = $model->bride; $bride->marriage_dt = $model->marriage_dt; Yii::trace("MRC.create bride " . $bride->id . " marriage_dt " . $bride->marriage_dt . ".", 'application.controllers.MarriageRecordsController'); if (!$bride->save(true, array('marriage_dt'))) { $errors = $bride->getErrors(); foreach ($errors as $errs) { $err = implode(', ', $errs); Yii::trace("MRC.create bride failed: {$err}", 'application.controllers.MarriageRecordsController'); } } } $this->redirect(array('view', 'id' => $model->id)); } } $this->render('create', array('model' => $model)); }
public function actionIndex($file) { $rfile = preg_replace('/\\.csv$/', '-rej.csv', $file); if (($fh = fopen($file, 'r')) !== FALSE) { $proc = false; $rej = 0; $num = 0; while (($data = fgetcsv($fh, 1000)) !== FALSE) { if ($proc) { ++$num; try { $rec = new MarriageRecord(); $col = 0; $rec->marriage_dt = FormatHelper::dateConv($data[$col++]); $rec->groom_name = $data[$col++]; $rec->groom_dob = FormatHelper::dateConv($data[$col++]); try { $rec->groom_baptism_dt = FormatHelper::dateConv($data[$col++]); } catch (Exception $e) { } $rec->groom_status = FieldNames::find_value('marital_status', $data[$col++]); $rec->groom_rank_prof = $data[$col++]; $rec->groom_fathers_name = $data[$col++]; $rec->groom_mothers_name = $data[$col++]; $rec->groom_residence = $data[$col++]; $rec->bride_name = $data[$col++]; $rec->bride_dob = FormatHelper::dateConv($data[$col++]); try { $rec->bride_baptism_dt = FormatHelper::dateConv($data[$col++]); } catch (Exception $e) { } $rec->bride_status = FieldNames::find_value('marital_status', $data[$col++]); $rec->bride_rank_prof = $data[$col++]; $rec->bride_fathers_name = $data[$col++]; $rec->bride_mothers_name = $data[$col++]; $rec->bride_residence = $data[$col++]; $rec->marriage_type = FieldNames::find_value('marriage_type', $data[$col++]); $rec->banns_licence = $data[$col++]; $rec->minister = $data[$col++]; $rec->witness1 = $data[$col++]; $rec->witness2 = $data[$col++]; $rec->remarks = $data[$col++]; if (!$rec->save()) { throw new Exception("Unable to save record"); } } catch (Exception $e) { if (1 == ++$rej) { if (($rej_fh = fopen($rfile, 'w')) === FALSE) { echo "File {$rfile} cannot be opened in write mode. Do you have write permissions?"; echo "Printing rejected records to STDOUT"; $rej_fh = STDOUT; } fputcsv($rej_fh, $hdr); } echo "Caught exception Record #{$num}: " . $e->getMessage() . ". Saved to rejects file\n"; fputcsv($rej_fh, $data); } } else { $proc = true; $hdr = $data; } } } fclose($fh); echo "Import complete. Total records: {$num}, success: " . ($num - $rej); if (isset($rej_fh)) { fclose($rej_fh); echo ", rejected: {$rej}.\nRejects saved to: {$rfile}"; } echo ".\n"; }