source: sipes/0.3-modules/proyectos_operativos_mail/proyectos_operativos_mail.module @ eb502b4

stableversion-3.0
Last change on this file since eb502b4 was 303fae2, checked in by José Gregorio Puentes <jpuentes@…>, 9 años ago

se agregaron los modulos

  • Propiedad mode establecida a 100755
File size: 11.4 KB
Línea 
1<?php
2/**
3 * Modulo paque permite el envio de las fechas de los procesos de planificacion para el registro de los proyectos operativos
4 * Sistema Automatizado para la Planificación Estratégico-Situacional en la Administración Pública Venezolana
5 * @file proyectos_operativos_mail.module
6 * Drupal part Module to code ente planificador module
7 * Copyright 2011 Sistema Automatizado para la Planificación Estratégico-Situacional en la Administración Pública Venezolana (CENDITEL)
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
22 *
23 * @author Cenditel Merida - Ing. Jose Puentes
24 * @date 2015-02-27 // (a&#241;o-mes-dia)
25 * @version 0.2 // (0.1)
26 *
27 */
28
29/*
30 * Implementation of hook_menu()
31 */
32function proyectos_operativos_mail_menu() {
33  $items = array();
34  $items['fechas_planificacion/notificacion/envia_email/ambito'] = array(
35    'title' => 'Enviar Correo Electronico de las fecha de Planificación por Ambitos',
36    'page callback' => 'proyectos_operativos_fecha_planificacion_mail_ambito',
37    'access callback' => 'usuario_tiene_permisos',
38    'type' => MENU_NORMAL_ITEM,
39  );
40  $items['fechas_planificacion/notificacion/envia_email/sector'] = array(
41    'title' => 'Enviar Correo Electronico de las fechas de Planificación por Sector',
42    'page callback' => 'proyectos_operativos_fecha_planificacion_mail_sector',
43    'access callback' => 'usuario_tiene_permisos',
44    'type' => MENU_NORMAL_ITEM,
45  );
46  //configuracion del mensaje a enviar
47  $items['admin/settings/ente_planificador/proyectos_operativos_mail'] = array(
48    'title' => t('Correos'),
49    'page callback' => 'drupal_get_form',
50    'page arguments' => array('proyectos_operativos_mail_admin_settings'),
51    'access arguments' => array('admin planificador'),
52    'weight' => -6,
53    'type' => MENU_LOCAL_TASK,
54    'file' => 'proyectos_operativos_mail.admin.inc',
55  );
56  return $items;
57}
58
59/**
60 * Permite el envio de las fechas de los procesos de planificacion por ambitos a los entes planificadores
61 */
62function proyectos_operativos_fecha_planificacion_mail_ambito($type_node) {
63  global $user;
64  $tid = variable_get('ente_planificador_sector_Ambitos', 0);
65  $ambitos = taxonomy_get_tree($tid);
66        $procesos = ente_planificador_procesos();
67  $procesos_status = ente_planificador_procesos('status');
68  $procesos = ente_planificador_procesos();
69  $procesos_ordenados = ente_planificador_ordena_procesos($procesos_status, $procesos);
70  $procesos_status = $procesos_ordenados['status'];
71  $default_from = variable_get('site_mail', ini_get('sendmail_from'));
72        $name_ambitos = "";
73  $emails = array();
74  $list_emails = array();
75  foreach ($ambitos as $terms) {
76    if ($terms->tid && $terms->depth == 0) { // si es un ambito
77      $result = db_query("SELECT u.mail, ep.ambito, ep.sector FROM {users} AS u INNER JOIN {ente_user_planificador} AS e ON e.usuario = u.uid INNER JOIN {ente_planificador} AS ep ON e.nid = ep.nid WHERE status > 0 AND ep.ambito = %d", $terms->tid);
78      while ($usuarios = db_fetch_object($result)) {
79                          if (!valid_email_address($usuarios->mail)) {
80                  form_set_error('email', t('That e-mail address is not valid %email.', array('%email' => $usuarios->mail)));
81                }
82        else {
83          $emails[] = $usuarios->mail;
84        }
85      }
86      $list_emails = implode(',',$emails);
87      if(count($emails)) {
88        $body_default = t('Estimado usuario a continuación le enviamos las fechas de Inicio y culminación de las distintas etapas de planificación') . "\n";
89        $body = variable_get("proyectos_oprativos_mail_body_message", $body_default) . "\n";
90        $body .= t("Ambito Social: ") . $terms->name . ".\n";
91        $body_message = "";
92        if (is_array($procesos_status) && count($procesos_status)) {
93          $procesos_title = t('Etapa: ') . ' ' . check_plain($procesos[$type_node]['title']) . ".\n";
94          $proceso_info .= $procesos_title;
95          $body_title = variable_get("proyectos_oprativos_mail_title_message", t('Fechas de Planificación: ')) . "\n";
96          $proceso_info .= $body_title;
97          $FIPMI = variable_get('ente_planificador_' . $type_node . '_all_from_' . $terms->tid, date('Y/M/D'));
98          $FIPMF = variable_get('ente_planificador_' . $type_node . '_all_until_' . $terms->tid, date('Y/M/D'));
99                          if ($FIPMI) {
100            $FIPMI = format_date($FIPMI);
101          }
102          else {
103            $FIPMI = t("N/A");
104          }
105          if ($FIPMF) {
106            $FIPMF = format_date($FIPMF);
107          }
108          else {
109            $FIPMF = t("N/A");
110          }
111          if ($FIPMI && $FIPMF) {
112            $proceso_info .= ' ' . " " . t("Fecha de Inicio: ") . $FIPMI . ', ' . t("Fecha de Culminación: ") . $FIPMF . "\n";
113            $body .= $proceso_info;
114                                    // Send the e-mail to the recipients using the site default language.
115            $from = $user->mail;
116                            drupal_mail('proyectos_operativos_mail', 'page_mail', $list_emails, language_default(), $body, $from);
117                        drupal_set_message(t("El correo para el ambito %ambito fue enviado a los usuarios: !usuarios_emails", array('%ambito' => $terms->name, '!usuarios_emails' => theme('item_list', $emails))));
118          }
119        }
120        else {
121          watchdog('mail', t("No se ha podido enviar la fecha del proceso de planificación %proceso para el ambito %ambito", array("%proceso" => check_plain($procesos[$type_node]['title']))), array("%ambito" => $terms->name), WATCHDOG_ERROR);
122          drupal_set_message(t("No se ha podido enviar la fecha del proceso de planificación %proceso para el ambito %ambito", array("%proceso" => check_plain($procesos[$type_node]['title']), "%ambito" => $terms->name)), "error");
123        }
124      }
125      else {
126        watchdog('mail', t("No se ha podido enviar la fecha del proceso de planificación %proceso para el ambito %ambito ya que no se poseen usuarios asignados a algun Ente planificador en dicho Ambito.", array("%proceso" => check_plain($procesos[$type_node]['title']))), array("%ambito" => $terms->name), WATCHDOG_ERROR);
127        drupal_set_message(t("No se ha podido enviar la fecha del proceso de planificación %proceso para el ambito %ambito ya que no se poseen usuarios asignados a algun Ente planificador en dicho Ambito.", array("%proceso" => check_plain($procesos[$type_node]['title']), "%ambito" => $terms->name)), "error");
128      }
129    }
130  }
131  drupal_goto('fechas_planificacion/edit/ambito/' . $type_node);       
132}
133
134/**
135 * Permite el envio de correos electronicos por sector social.
136 */
137function proyectos_operativos_fecha_planificacion_mail_sector($type_node) {
138  global $user;
139  $tid = variable_get('ente_planificador_sector_Ambitos', 0);
140  $ambitos = taxonomy_get_tree($tid);
141        $procesos = ente_planificador_procesos();
142  $procesos_status = ente_planificador_procesos('status');
143  $procesos = ente_planificador_procesos();
144  $procesos_ordenados = ente_planificador_ordena_procesos($procesos_status, $procesos);
145  $procesos_status = $procesos_ordenados['status'];
146  $default_from = variable_get('site_mail', ini_get('sendmail_from'));
147        $name_sector = "";
148  $emails = array();
149  $list_emails = array();
150  foreach ($ambitos as $terms) {
151    if ($terms->tid && $terms->depth == 1) { // si es un sector social
152      $result = db_query("SELECT u.mail, ep.ambito, ep.sector FROM {users} AS u INNER JOIN {ente_user_planificador} AS e ON e.usuario = u.uid INNER JOIN {ente_planificador} AS ep ON e.nid = ep.nid WHERE status > 0 AND ep.ambito = %d", $terms->tid);
153      while ($usuarios = db_fetch_object($result)) {
154                          if (!valid_email_address($usuarios->mail)) {
155                  form_set_error('email', t('That e-mail address is not valid %email.', array('%email' => $usuarios->mail)));
156                }
157        else {
158          $emails[] = $usuarios->mail;
159        }
160      }
161      $list_emails = implode(',',$emails);
162      if(count($emails)) {
163        $body_default = t('Estimado usuario a continuación le enviamos las fechas de Inicio y culminación de las distintas etapas de planificación') . "\n";
164        $body = variable_get("proyectos_oprativos_mail_body_message", $body_default) . "\n";
165        $body .= t("Sector Social: ") . $terms->name . ".\n";
166        $body_message = "";
167        if (is_array($procesos_status) && count($procesos_status)) {
168          $procesos_title = t('Etapa: ') . ' ' . check_plain($procesos[$type_node]['title']) . ".\n";
169          $proceso_info .= $procesos_title;
170          $body_title = variable_get("proyectos_oprativos_mail_title_message", t('Fechas de Planificación: ')) . "\n";
171          $proceso_info .= $body_title;
172          $FIPMI = variable_get('ente_planificador_' . $type_node . '_all_from_' . $terms->tid, date('Y/M/D'));
173          $FIPMF = variable_get('ente_planificador_' . $type_node . '_all_until_' . $terms->tid, date('Y/M/D'));
174                          if ($FIPMI) {
175            $FIPMI = format_date($FIPMI);
176          }
177          else {
178            $FIPMI = t("N/A");
179          }
180          if ($FIPMF) {
181            $FIPMF = format_date($FIPMF);
182          }
183          else {
184            $FIPMF = t("N/A");
185          }
186          if ($FIPMI && $FIPMF) {
187            $proceso_info .= ' ' . " " . t("Fecha de Inicio: ") . $FIPMI . ', ' . t("Fecha de Culminación: ") . $FIPMF . "\n";
188            $body .= $proceso_info;
189                                    // Send the e-mail to the recipients using the site default language.
190            $from = $user->mail;
191                            drupal_mail('proyectos_operativos_mail', 'page_mail', $list_emails, language_default(), $body, $from);
192                        drupal_set_message(t("El correo para el Sector social %sector fue enviado a los usuarios: !usuarios_emails", array('%sector' => $terms->name, '!usuarios_emails' => theme('item_list', $emails))));
193          }
194        }
195        else {
196          watchdog('mail', t("No se ha podido enviar la fecha del proceso de planificación %proceso para el Sector %sector", array("%proceso" => check_plain($procesos[$type_node]['title']))), array("%sector" => $terms->name), WATCHDOG_ERROR);
197          drupal_set_message(t("No se ha podido enviar la fecha del proceso de planificación %proceso para el Sector %sector", array("%proceso" => check_plain($procesos[$type_node]['title']), "%sector" => $terms->name)), "error");
198        }
199      }
200      else {
201        watchdog('mail', t("No se ha podido enviar la fecha del proceso de planificación %proceso para el Sector %sector ya que no se poseen usuarios asignados a algun Ente planificador en dicho Sector Social.", array("%proceso" => check_plain($procesos[$type_node]['title']))), array("%sector" => $terms->name), WATCHDOG_ERROR);
202        drupal_set_message(t("No se ha podido enviar la fecha del proceso de planificación %proceso para el Sector %sector ya que no se poseen usuarios asignados a algun Ente planificador en dicho Sector Social.", array("%proceso" => check_plain($procesos[$type_node]['title']), "%sector" => $terms->name)), "error");
203      }
204    }
205  }
206  drupal_goto('fechas_planificacion/edit/sector/' . $type_node);       
207}
208
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.