示例#1
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Estimate::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['estimate.id' => $this->id, 'estimate.client_id' => $this->client_id, 'estimate.user_id' => $this->user_id, 'estimate.status' => $this->status, 'estimate.request_date' => $this->request_date, 'estimate.sent_date' => $this->sent_date, 'estimate.total' => $this->total, 'estimate.cost' => $this->cost, 'estimate.total_checked' => $this->total_checked, 'estimate.cost_checked' => $this->cost_checked, 'estimate.us' => $this->us, 'estimate.deleted' => $this->deleted]);
     $query->andFilterWhere(['like', 'title', $this->title]);
     $joinWith = ['client' => function ($query) {
         if ($this->clientName) {
             $query->where(['like', 'name', $this->clientName]);
         }
     }];
     if ($this->sampleDelivered) {
         array_push($joinWith, 'entriesWithSampleDelivered');
     }
     $query->joinWith($joinWith)->active();
     return $dataProvider;
 }
示例#2
0
?>
<div class="estimate-index">

    <h1><?php 
echo Html::encode($this->title);
?>
</h1>
	
	<div style="float: right">
		<h3>Valor dólar: <?php 
echo Currency::format(Currency::getUsToArs(), Currency::CURRENCY_ARS);
?>
</h3>
	</div>

    <p>
		<?php 
echo Html::a('Crear presupuesto', ['create'], ['class' => 'btn btn-success']);
?>
    </p>
	
	<?php 
echo GridView::widget(['pjax' => true, 'pjaxSettings' => ['options' => ['id' => 'estimates-gridview']], 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'rowOptions' => function ($model, $index, $widget, $grid) {
    return ['style' => "background-color:{$model->statusColor};"];
}, 'columns' => [['attribute' => 'id', 'label' => 'Número', 'options' => ['style' => 'width: 100px;']], ['label' => 'Cliente', 'value' => 'client.name', 'filter' => Html::activeTextInput($searchModel, 'clientName', ['class' => 'form-control'])], 'title', ['class' => 'kartik\\grid\\EditableColumn', 'attribute' => 'status', 'label' => 'Estado', 'value' => 'statusLabel', 'filter' => Html::activeDropDownList($searchModel, 'status', Estimate::statusLabels(), ['class' => 'form-control', 'prompt' => 'Estado']), 'editableOptions' => ['inputType' => Editable::INPUT_DROPDOWN_LIST, 'data' => Estimate::statusLabels()], 'refreshGrid' => true, 'options' => ['style' => 'width: 160px;']], ['attribute' => 'request_date', 'format' => 'date', 'filter' => false, 'options' => ['style' => 'width: 125px;']], ['attribute' => 'sent_date', 'format' => 'date', 'filter' => false, 'options' => ['style' => 'width: 125px;']], ['label' => 'Muestra', 'filter' => Html::activeCheckbox($searchModel, 'sampleDelivered', ['label' => '']), 'value' => function ($model, $key, $index, $column) {
    return $model->entriesWithSampleDeliveredCount > 0 ? 'Si' : 'No';
}, 'options' => ['style' => 'width: 70px;']], ['class' => 'yii\\grid\\ActionColumn', 'options' => ['style' => 'width: 60px;']]]]);
?>

</div>
示例#3
0
    ?>
		</div>
	<?php 
}
?>
	
	<?php 
echo $form->field($model, 'client_contact_id')->widget(DepDrop::classname(), ['data' => $model->client ? Client::getDefaultContactsArray() + $model->client->getContactsArray() : Client::getDefaultContactsArray(), 'pluginOptions' => ['placeholder' => Client::CONTACT_DROPDOWN_PLACEHOLDER, 'depends' => ['client_id'], 'url' => Url::to(['/client/get-contacts'])]]);
?>
	
	<?php 
echo $form->field($model, 'title')->textInput();
?>
	
	<?php 
echo $form->field($model, 'status')->dropDownList(Estimate::statusLabels());
?>

	<?php 
echo $form->field($model, 'request_date')->widget(\yii\jui\DatePicker::classname(), ['options' => ['class' => 'form-control']]);
?>

	<?php 
echo $form->field($model, 'sent_date')->widget(\yii\jui\DatePicker::classname(), ['options' => ['class' => 'form-control']]);
?>

    <div class="form-group">
		<?php 
echo Html::submitButton($model->isNewRecord ? 'Crear' : 'Editar', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']);
?>
    </div>
 /**
  * Add a contact to an existing Client.
  * @param integer $id
  * @return mixed
  */
 public function actionAddContact($id)
 {
     $client = $this->findModel($id);
     $model = new ClientContact();
     $model->client_id = $client->id;
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         $estimate = Yii::$app->session->get(Estimate::className());
         if ($estimate) {
             return $this->redirect(['estimate/create']);
         }
         return $this->redirect(['view', 'id' => $client->id]);
     } else {
         return $this->render('add-contact', ['model' => $model, 'client' => $client]);
     }
 }
 /**
  * Finds the Estimate model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return Estimate the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Estimate::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
示例#6
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getEstimate()
 {
     return $this->hasOne(Estimate::className(), ['id' => 'estimate_id']);
 }