/**
  * Retrieves a list of models based on the current search/filter conditions.
  *
  * Typical usecase:
  * - Initialize the model fields with values from filter form.
  * - Execute this method to get CActiveDataProvider instance which will filter
  * models according to data in model fields.
  * - Pass data provider to CGridView, CListView or any similar widget.
  *
  * @return CActiveDataProvider the data provider that can return the models
  * based on the search/filter conditions.
  */
 public function search()
 {
     // @todo Please modify the following code to remove attributes that should not be searched.
     $usuario = Usuarios::getUsuarioId(app()->user->id);
     if ($usuario) {
         $criteria = new CDbCriteria();
         switch ($usuario->IdRol) {
             case 1:
             case 2:
                 $criteria->select = 'OC.*, LF.IdTransportador, AE.DiaSemana, AE.HoraDia, TR.Nombre AS NombreTransportador, ' . ' CalcularFechaEntregaMcia(OC.FechaRegistroOrdenCompra,AE.DiaSemana) AS FechaSolicitudCita ';
                 $criteria->alias = 'OC';
                 $criteria->join = 'LEFT JOIN m_LogisticaFabricante LF ON OC.IdFabricante = LF.IdFabricante ' . 'AND OC.IdCedi = LF.IdCedi ' . 'LEFT JOIN m_AcuerdosEntregaFabricante AE ON OC.IdFabricante = AE.IdFabricante ' . 'AND OC.IdCedi = AE.IdCedi ' . 'LEFT JOIN m_Transportador TR ON TR.IdTransportador = LF.IdTransportador ';
                 break;
             case 3:
             case 4:
                 $criteria->select = 'OC.*, LF.IdTransportador, AE.DiaSemana, AE.HoraDia, TR.Nombre AS NombreTransportador, ' . ' CalcularFechaEntregaMcia(OC.FechaRegistroOrdenCompra,AE.DiaSemana) AS FechaSolicitudCita ';
                 $criteria->alias = 'OC';
                 $criteria->join = 'LEFT JOIN m_LogisticaFabricante LF ON OC.IdFabricante = LF.IdFabricante ' . 'AND OC.IdCedi = LF.IdCedi ' . 'LEFT JOIN m_AcuerdosEntregaFabricante AE ON OC.IdFabricante = AE.IdFabricante ' . 'AND OC.IdCedi = AE.IdCedi ' . 'LEFT JOIN m_Transportador TR ON TR.IdTransportador = LF.IdTransportador ';
                 $criteria->condition = 'LF.IdUsuarioResponsable=' . app()->user->id;
                 break;
             default:
                 break;
         }
         // switch ($usuario->IdRol)
         $criteria->compare('NumeroOrdenCompra', $this->NumeroOrdenCompra);
         $criteria->compare('OC.IdFabricante', $this->IdFabricante);
         $criteria->compare('NombreFabricante', $this->NombreFabricante, true);
         $criteria->compare('OC.IdCedi', $this->IdCedi);
         $criteria->compare('LF.IdTransportador', $this->IdTransportador);
         $criteria->compare('NombreCedi', $this->NombreCedi, true);
         $criteria->compare('TotalOrdenCompra', $this->TotalOrdenCompra, true);
         $criteria->compare('IdEstadoOrdenCompra', $this->IdEstadoOrdenCompra);
         $criteria->compare('FechaTentativaEntrega', $this->FechaTentativaEntrega, true);
         $criteria->compare('FechaRegistroOrdenCompra', $this->FechaRegistroOrdenCompra, true);
         return new CActiveDataProvider($this, array('keyAttribute' => 'NumeroOrdenCompra', 'criteria' => $criteria));
     }
     return null;
 }
 public function validarRolUsuario($attribute_name, $params)
 {
     $usuario = Usuarios::getUsuarioId($this->IdUsuarioResponsable);
     if ($usuario) {
         if (!empty($this->IdFabricante) && empty($this->IdTransportador)) {
             if ($usuario->IdRol != 3) {
                 $this->addError('IdResponsable', 'Responsable Debe Tener Rol de Fabricante');
             }
         } else {
             if (!empty($this->IdFabricante) && !empty($this->IdTransportador)) {
                 if ($usuario->IdRol != 4) {
                     $this->addError('IdResponsable', 'Responsable Debe Tener Rol de Transportador');
                 }
             }
         }
     }
 }
 public function enviarEmailSolicitud($model, $modelsolicitudcita)
 {
     $email = new EnviarEmail();
     // Traemos datos del Cedi - Usuario Administrador Cedi
     $elCedi = Cedi::getCedi($model->IdCedi);
     $elUsuarioAdmin = Usuarios::getUsuarioDocumento($elCedi->CedulaJefe);
     $elUsuario = Usuarios::getUsuarioId(Yii::app()->user->id);
     if ($elUsuario) {
         Yii::app()->user->setFlash('success', '<strong>Message sent!   </strong>Thank you for contacting us. We will respond to you as soon as possible.');
     }
     if ($elUsuario && $elUsuarioAdmin) {
         $emailUsuarioAdmin = $elUsuarioAdmin->EmailUsuario;
         $nombreCompletoAdmin = $elUsuarioAdmin->PrimerNombre . ' ' . $elUsuarioAdmin->SegundoNombre . ' ' . $elUsuarioAdmin->PrimerApellido . ' ' . $elUsuarioAdmin->SegundoApellido;
         $emailUsuarioFabricante = $elUsuario->EmailUsuario;
         $nombreCompletoFabricante = $elUsuario->PrimerNombre . ' ' . $elUsuario->SegundoNombre . ' ' . $elUsuario->PrimerApellido . ' ' . $elUsuario->SegundoApellido;
         if ($emailUsuarioFabricante && $emailUsuarioAdmin) {
             $body = "Numero Orden -> " . $model->NumeroOrdenCompra . "<br />" . "Fecha Solicitud -> " . $modelsolicitudcita->FechaSolicitudCita . "<br />" . 'Hora Solicitud -> ' . $modelsolicitudcita->HoraSolicitudCita . "<br />" . 'CEDI -> ' . $model->NombreCedi . "<br />" . 'Número Piezas -> ' . $model->NumeroPiezas . "<br />" . 'Fabricante -> ' . $model->NombreFabricante . "<br />" . 'Transportadora -> ' . $model->NombreTransportador . "<br />" . 'Observaciones -> ' . $modelsolicitudcita->ObservacionesSolicitudCita . "<br />";
             $subject = 'Solicitud de Cita Nro : ' . $modelsolicitudcita->IdNumeroSolicitud . ' - Fabricante : ' . $model->NombreFabricante;
             $message = $body;
             $email->enviar(array($emailUsuarioFabricante, $nombreCompletoFabricante), array($emailUsuarioAdmin, $nombreCompletoAdmin), $subject, $message);
         }
     }
 }