public function actionSuscriptorForm()
 {
     $model = new app\modules\suscriptor\models\Suscripciones();
     if ($model->load(Yii::$app->request->post())) {
         if ($model->validate()) {
             // form inputs are valid, do something here
             return;
         }
     }
     return $this->render('site/suscriptorForm', ['model' => $model]);
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Suscripciones::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id]);
     $query->andFilterWhere(['like', 'mail', $this->mail])->andFilterWhere(['like', 'nombre', $this->nombre]);
     return $dataProvider;
 }
 public function actionMail()
 {
     $timezone = new \DateTimeZone('America/Argentina/Buenos_Aires');
     $date = new \DateTime('now', $timezone);
     $dateToCompare = new \DateTime('now', $timezone);
     /*
      * Armado de envío de novedades por suscripción mensual
      */
     //modifico la fecha de comparación para llevarla a fin de mes
     $dateToCompare->modify('last day of this month');
     if ($date->format('Y-m-d') == $dateToCompare->format('Y-m-d')) {
         $suscriptores = Suscripciones::findAll(['tipo' => 'mensual']);
         $dateToCompare->modify('first day of this month');
         $novedades = Novedades::find()->where(['>=', 'fecha', $dateToCompare->format('Y-m-d')])->all();
         //si hay novedades para enviar
         if (count($novedades) > 0) {
             $msg = $this->buildNewsBodyContent($novedades, 'mensuales');
             foreach ($suscriptores as $suscriptor) {
                 $this->sendMail($suscriptor->mail, 'Novedades de Radioalbum', $msg);
             }
         }
     }
     /*
      * Armado de envío de novedades por suscripción semanal
      */
     //pregunto si el día actual es Domingo
     $dateToCompare = date('N');
     if ($dateToCompare == '7') {
         $suscriptores = Suscripciones::findAll(['tipo' => 'semanal']);
         /*
          * Obtenemos la fecha actual y le restamos 7 días
          */
         $dateToCompare = new \DateTime('now', $timezone);
         $dateToCompare->sub(new \DateInterval('P7D'));
         //buscamos las novedades con fecha mayor a la de comparación
         $novedades = Novedades::find()->where(['>', 'fecha', $dateToCompare->format('Y-m-d')])->all();
         //si hay novedades para enviar
         if (count($novedades) > 0) {
             $msg = $this->buildNewsBodyContent($novedades, 'semanales');
             foreach ($suscriptores as $suscriptor) {
                 $this->sendMail($suscriptor->mail, 'Novedades de Radioalbum', $msg);
             }
         }
     }
 }