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ño-mes-dia) |
---|
25 | * @version 0.2 // (0.1) |
---|
26 | * |
---|
27 | */ |
---|
28 | |
---|
29 | /* |
---|
30 | * Implementation of hook_menu() |
---|
31 | */ |
---|
32 | function 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 | */ |
---|
62 | function 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 | */ |
---|
137 | function 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 | |
---|