'Enviar Correo Electronico de las fecha de Planificación por Ambitos', 'page callback' => 'proyectos_operativos_fecha_planificacion_mail_ambito', 'access callback' => 'usuario_tiene_permisos', 'type' => MENU_NORMAL_ITEM, ); $items['fechas_planificacion/notificacion/envia_email/sector'] = array( 'title' => 'Enviar Correo Electronico de las fechas de Planificación por Sector', 'page callback' => 'proyectos_operativos_fecha_planificacion_mail_sector', 'access callback' => 'usuario_tiene_permisos', 'type' => MENU_NORMAL_ITEM, ); //configuracion del mensaje a enviar $items['admin/settings/ente_planificador/proyectos_operativos_mail'] = array( 'title' => t('Correos'), 'page callback' => 'drupal_get_form', 'page arguments' => array('proyectos_operativos_mail_admin_settings'), 'access arguments' => array('admin planificador'), 'weight' => -6, 'type' => MENU_LOCAL_TASK, 'file' => 'proyectos_operativos_mail.admin.inc', ); return $items; } /** * Permite el envio de las fechas de los procesos de planificacion por ambitos a los entes planificadores */ function proyectos_operativos_fecha_planificacion_mail_ambito($type_node) { global $user; $tid = variable_get('ente_planificador_sector_Ambitos', 0); $ambitos = taxonomy_get_tree($tid); $procesos = ente_planificador_procesos(); $procesos_status = ente_planificador_procesos('status'); $procesos = ente_planificador_procesos(); $procesos_ordenados = ente_planificador_ordena_procesos($procesos_status, $procesos); $procesos_status = $procesos_ordenados['status']; $default_from = variable_get('site_mail', ini_get('sendmail_from')); $name_ambitos = ""; $emails = array(); $list_emails = array(); foreach ($ambitos as $terms) { if ($terms->tid && $terms->depth == 0) { // si es un ambito $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); while ($usuarios = db_fetch_object($result)) { if (!valid_email_address($usuarios->mail)) { form_set_error('email', t('That e-mail address is not valid %email.', array('%email' => $usuarios->mail))); } else { $emails[] = $usuarios->mail; } } $list_emails = implode(',',$emails); if(count($emails)) { $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"; $body = variable_get("proyectos_oprativos_mail_body_message", $body_default) . "\n"; $body .= t("Ambito Social: ") . $terms->name . ".\n"; $body_message = ""; if (is_array($procesos_status) && count($procesos_status)) { $procesos_title = t('Etapa: ') . ' ' . check_plain($procesos[$type_node]['title']) . ".\n"; $proceso_info .= $procesos_title; $body_title = variable_get("proyectos_oprativos_mail_title_message", t('Fechas de Planificación: ')) . "\n"; $proceso_info .= $body_title; $FIPMI = variable_get('ente_planificador_' . $type_node . '_all_from_' . $terms->tid, date('Y/M/D')); $FIPMF = variable_get('ente_planificador_' . $type_node . '_all_until_' . $terms->tid, date('Y/M/D')); if ($FIPMI) { $FIPMI = format_date($FIPMI); } else { $FIPMI = t("N/A"); } if ($FIPMF) { $FIPMF = format_date($FIPMF); } else { $FIPMF = t("N/A"); } if ($FIPMI && $FIPMF) { $proceso_info .= ' ' . " " . t("Fecha de Inicio: ") . $FIPMI . ', ' . t("Fecha de Culminación: ") . $FIPMF . "\n"; $body .= $proceso_info; // Send the e-mail to the recipients using the site default language. $from = $user->mail; drupal_mail('proyectos_operativos_mail', 'page_mail', $list_emails, language_default(), $body, $from); 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)))); } } else { 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); 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"); } } else { 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); 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"); } } } drupal_goto('fechas_planificacion/edit/ambito/' . $type_node); } /** * Permite el envio de correos electronicos por sector social. */ function proyectos_operativos_fecha_planificacion_mail_sector($type_node) { global $user; $tid = variable_get('ente_planificador_sector_Ambitos', 0); $ambitos = taxonomy_get_tree($tid); $procesos = ente_planificador_procesos(); $procesos_status = ente_planificador_procesos('status'); $procesos = ente_planificador_procesos(); $procesos_ordenados = ente_planificador_ordena_procesos($procesos_status, $procesos); $procesos_status = $procesos_ordenados['status']; $default_from = variable_get('site_mail', ini_get('sendmail_from')); $name_sector = ""; $emails = array(); $list_emails = array(); foreach ($ambitos as $terms) { if ($terms->tid && $terms->depth == 1) { // si es un sector social $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); while ($usuarios = db_fetch_object($result)) { if (!valid_email_address($usuarios->mail)) { form_set_error('email', t('That e-mail address is not valid %email.', array('%email' => $usuarios->mail))); } else { $emails[] = $usuarios->mail; } } $list_emails = implode(',',$emails); if(count($emails)) { $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"; $body = variable_get("proyectos_oprativos_mail_body_message", $body_default) . "\n"; $body .= t("Sector Social: ") . $terms->name . ".\n"; $body_message = ""; if (is_array($procesos_status) && count($procesos_status)) { $procesos_title = t('Etapa: ') . ' ' . check_plain($procesos[$type_node]['title']) . ".\n"; $proceso_info .= $procesos_title; $body_title = variable_get("proyectos_oprativos_mail_title_message", t('Fechas de Planificación: ')) . "\n"; $proceso_info .= $body_title; $FIPMI = variable_get('ente_planificador_' . $type_node . '_all_from_' . $terms->tid, date('Y/M/D')); $FIPMF = variable_get('ente_planificador_' . $type_node . '_all_until_' . $terms->tid, date('Y/M/D')); if ($FIPMI) { $FIPMI = format_date($FIPMI); } else { $FIPMI = t("N/A"); } if ($FIPMF) { $FIPMF = format_date($FIPMF); } else { $FIPMF = t("N/A"); } if ($FIPMI && $FIPMF) { $proceso_info .= ' ' . " " . t("Fecha de Inicio: ") . $FIPMI . ', ' . t("Fecha de Culminación: ") . $FIPMF . "\n"; $body .= $proceso_info; // Send the e-mail to the recipients using the site default language. $from = $user->mail; drupal_mail('proyectos_operativos_mail', 'page_mail', $list_emails, language_default(), $body, $from); 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)))); } } else { 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); 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"); } } else { 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); 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"); } } } drupal_goto('fechas_planificacion/edit/sector/' . $type_node); }