Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
- class Panel extends CI_Controller
- {
- function __construct()
- {
- parent::__construct();
- if(!$this->session->userdata('valid_admin')) redirect('adminlogin');
- $this->load->model('Admin_model');
- $this->load->model('Cursos_model');
- $this->load->model('Tienda_model');
- $this->load->model('Clientes_model');
- $this->load->library('grocery_CRUD');
- }
- public function index()
- {
- $this->cursos_programados();
- }
- public function _example_output($output = null)
- {
- $this->load->view('panel/panel.php',$output);
- }
- ///////////////////////// ORGANIZADORES /////////////////////////////
- public function organizadores()
- {
- $crud = new grocery_CRUD();
- $crud->set_theme('datatables');
- $crud->set_table('organizadores');
- $crud->set_relation('id_pais','paises','{nombre}');
- $crud->set_subject('Organizador');
- $crud->display_as('calle','Dirección')
- ->display_as("id_pais", "Pais");
- $crud->required_fields('nombre', 'calle');
- $crud->unset_texteditor('observaciones');
- $crud->set_rules('correos','Correo','trim|strip_tags|valid_email');
- $crud->unset_read();
- $output = $crud->render();
- $this->_example_output($output);
- }
- ///////////////////////// ORGANIZADORES /////////////////////////////
- ///////////////////////// INSTRUCTORES /////////////////////////////
- public function instructores()
- {
- $crud = new grocery_CRUD();
- $crud->set_theme('datatables');
- $crud->set_table('instructores');
- $crud->set_relation('id_pais','paises','{nombre}');
- $crud->set_subject('Instructor');
- $crud->display_as('calle','Dirección')
- ->display_as("id_pais", "Pais")
- ->display_as("listacats", "Cursos que puede dar");
- $crud->required_fields('nombre', 'calle');
- $crud->unset_texteditor('observaciones', 'listacats');
- $crud->set_rules('correos','Correo','trim|strip_tags|valid_email');
- $crud->callback_column('tipo', array($this, 'link_categorias'));
- $crud->callback_column('observaciones', array($this, 'link_notas_instructor'));
- $crud->unset_read();
- $output = $crud->render();
- $this->_example_output($output);
- }
- function link_categorias($value, $row)
- {
- $atts = array(
- 'width' => '900px',
- 'height' => '300',
- 'scrollbars' => 'yes',
- 'status' => 'yes',
- 'resizable' => 'yes',
- 'screenx' => '200px',
- 'screeny' => '200px'
- );
- return $value . " " . anchor_popup('panel/instructor_categorias/' . $row->id, "Cursos que da", $atts);
- }
- public function instructor_categorias($id_instructor)
- {
- $crud = new grocery_CRUD();
- $crud->where('id_instructor', $id_instructor);
- $crud->set_table('instructores_categorias');
- $crud->set_relation('id_categoria','categorias','{nombre}');
- $crud->set_subject('Categoria');
- $crud->unset_print();
- $crud->unset_export();
- $crud->fields('id_categoria');
- $crud->required_fields('id_categoria');
- $crud->field_type('id_instructor', 'hidden', $id_instructor);
- $crud->unset_read();
- $output = $crud->render();
- $this->load->view('panel/panel2.php',$output);
- }
- function link_notas_instructor($value, $row)
- {
- $atts = array(
- 'width' => '900px',
- 'height' => '300',
- 'scrollbars' => 'yes',
- 'status' => 'yes',
- 'resizable' => 'yes',
- 'screenx' => '200px',
- 'screeny' => '200px'
- );
- return $value . " " . anchor_popup('panel/get_notas/instructor/' . $row->id, "Ver notas", $atts);
- }
- ///////////////////////// INSTRUCTORES /////////////////////////////
- /////////////////////////// CLIENTES //////////////////////////////
- public function clientes()
- {
- $crud = new grocery_CRUD();
- $crud->set_theme('datatables');
- $crud->set_table('clientes');
- $crud->set_relation('id_pais','paises','{nombre}');
- $crud->set_subject('Cliente');
- $crud->display_as('calle','Dirección')
- ->display_as("id_pais", "Pais");
- $crud->required_fields('nombre', 'usuario', 'password', 'calle');
- $crud->add_fields("nombre", "apellidos", "usuario", "password", "repite_password", "calle", "rfc", "id_pais",
- "ciudad", "region", "cp", "telefonos", "correos", "paginasweb", "observaciones");
- $crud->edit_fields("nombre", "apellidos", "usuario", "calle", "rfc", "id_pais",
- "ciudad", "region", "cp", "telefonos", "correos", "paginasweb", "observaciones");
- $crud->set_rules('repite_password','Password','matches[password]');
- $crud->add_action('Cursos tomados', '', 'panel/cursos_tomados','ui-icon-document');
- $crud->unset_edit_fields('password', 'repite_password');
- $crud->unset_columns('password', 'repite_password');
- $crud->unset_texteditor('observaciones');
- $crud->callback_edit_field('usuario',array($this,'edit_field_usuario'));
- $crud->callback_before_insert(array($this,'encrypt_password_callback'));
- $crud->callback_after_insert(array($this, 'enviar_correo_after_insert'));
- $crud->callback_add_field('nombre',array($this,'add_field_nombre'));
- $crud->callback_add_field('usuario',array($this,'add_field_usuario'));
- $crud->callback_add_field('correos',array($this,'add_field_correo'));
- $crud->callback_add_field('password',array($this,'add_field_password'));
- $crud->callback_column('observaciones', array($this, 'link_notas_cliente'));
- $crud->set_rules('correos','Correo','trim|strip_tags|valid_email');
- $crud->unset_read();
- //$crud->set_rules('usuario','Usuario','min_length[6]');
- /*$crud->callback_before_insert(function($post_array){
- if($this->Clientes_model->existe_cliente("clientes", $post_array['usuario'])) return FALSE;
- return $post_array;
- });*/
- $output = $crud->render();
- $this->_example_output($output);
- }
- function enviar_correo_after_insert($post_array,$primary_key)
- {
- $password = $this->session->userdata('password_nuevo_cliente');
- $cliente = $this->Clientes_model->get_cliente($primary_key);
- $this->load->library('email');
- $config['mailtype'] = 'html';
- $this->email->initialize($config);
- $this->email->from('info@cika.com.mx', 'Administración de Cika');
- $this->email->to('info@cika.com.mx');
- $this->email->subject('NUEVA CUENTA DE CLIENTE GENERADA DESDE EL PANEL DE CIKA');
- $message = "<h2>NUEVA CUENTA EN CIKA.COM.MX</h2>";
- $message .= "<p>Ha sido generada una nueva cuenta para un cliente:</p>";
- $message .= "<p><strong>Nombre:</strong> $cliente->nombre $cliente->apellidos</p>";
- $message .= "<p><strong>Usuario:</strong> $cliente->usuario</p>";
- $message .= "<p><strong>Nueva contraseña: </strong>$password</p>";
- $message .= "<p><strong>Fecha de creación: </strong>" . date("d/m/Y") . "</p>";
- $message .= "<p>Por favor envie estos datos al usuario a su correo: $cliente->correos, porque son necesarios para iniciar sesión en la página.</p>";
- $this->email->message($message);
- $this->email->send();
- //echo $this->email->print_debugger();
- return true;
- }
- function encrypt_password_callback($post_array)
- {
- $this->session->set_userdata("password_nuevo_cliente", $post_array['password']);
- unset($post_array['repite_password']);
- $post_array['password'] = md5($post_array['password']);
- return $post_array;
- }
- function add_field_nombre()
- {
- return '<div style="position:fixed;top:350px;right:50px;width:35%;box-shadow:0 0 5px #444;
- background:#ddffff;color:#ff5555;margin-left:1em;font-size:0.9em;padding:10px;">' .
- '<p><strong>Notas Importantes</strong></p>' .
- '<p>Antes de capturar la información del Cliente lea estas notas por favor.</p>' .
- '<ol><li>- El nombre de Usuario es unico, si ingresa uno que ya existe el Sistema se lo indicará.</li>' .
- '<li>- El Correo es unico, si ingresa uno que ya existe el Sistema se lo indicará.</li>' .
- '<li>- Si el Cliente tiene más de un correo por favor solo deje el principal en el campo Correo ' .
- 'y los demás puede ponerlos en el campo de Observaciones.</li>' .
- '<li>Copie el password porque una vez almacenado en la base de datos ya no se puede recuperar, ' .
- 'solo generar otro.</li>' .
- '<li>El Sistema genera automaticamente el password, si desea otro solo recargue la página (F5)</li></ol></div>' .
- '<input type="text" maxlength="20" value="" name="nombre" id="nombre">';
- }
- function add_field_usuario()
- {
- return '<input type="text" maxlength="20" value="" name="usuario" id="usuario">';
- }
- function add_field_correo()
- {
- return '<input type="text" maxlength="50" value="" name="correos" id="correo">';
- }
- function add_field_password()
- {
- return '<input type="text" maxlength="20" readonly="readonly" value="' . get_random_password() . '" name="password">';
- }
- function validar_usuario_ajax()
- {
- $usuario = trim(strip_tags($this->input->post("usuario")));
- echo $this->Clientes_model->existe_cliente("usuario", $usuario);
- }
- function validar_correo_ajax()
- {
- $correo = trim(strip_tags($this->input->post("correo")));
- echo $this->Clientes_model->existe_cliente("correos", $correo);
- }
- function edit_field_usuario($value, $primary_key)
- {
- return '<input type="text" name="usuario" id="usuario" value="' . $value . '"> '
- . anchor("panel/nuevo_password/$primary_key", "Generar una nuevo password para este cliente");
- }
- function nuevo_password($id_cliente)
- {
- $data["cliente"] = $this->Clientes_model->get_cliente($id_cliente);
- $this->load->view('panel/nuevo_password', $data);
- }
- function guardar_nuevo_password()
- {
- $id_cliente = (int)$this->input->post("id_cliente");
- $password = trim(strip_tags($this->input->post("password")));
- if($this->Clientes_model->actualizar_password("id", $id_cliente, $password)){
- $cliente = $this->Clientes_model->get_cliente($id_cliente);
- $this->load->library('email');
- $config['mailtype'] = 'html';
- $this->email->initialize($config);
- $this->email->from('info@cika.com.mx', 'Administración de Cika');
- $this->email->to('info@cika.com.mx');
- $this->email->subject('NUEVA CONTRASEÑA DE CLIENTE GENERADA DESDE EL PANEL DE CIKA');
- $message = "<h2>NUEVA CONTRASEÑA DE CLIENTE</h2>";
- $message .= "<p>Ha sido generada una nueva contraseña para el cliente:</p>";
- $message .= "<p><strong>Nombre:</strong> $cliente->nombre $cliente->apellidos</p>";
- $message .= "<p><strong>Usuario:</strong> $cliente->usuario</p>";
- $message .= "<p><strong>Nueva contraseña: </strong>$password</p>";
- $message .= "<p><strong>Fecha de creación: </strong>" . date("d/m/Y") . "</p>";
- $message .= "<p>Por favor envie estos datos al usuario a su correo: $cliente->correos, porque son necesarios para iniciar sesión en la página.</p>";
- $this->email->message($message);
- $this->email->send();
- //echo $this->email->print_debugger();
- $msg = "<p>¡Password actualizado correctamente!<br />Revise por favor el correo info@cika.com.mx si quiere enviar los datos al cliente.</p>";
- } else $msg = "<p>¡Error al actualizar el password, consulte con el Administrador del sitio!</p>";
- $this->session->set_flashdata('msg', $msg);
- redirect("panel/clientes/edit/$id_cliente", 'refresh');
- }
- function link_notas_cliente($value, $row)
- {
- $atts = array(
- 'width' => '900px',
- 'height' => '300',
- 'scrollbars' => 'yes',
- 'status' => 'yes',
- 'resizable' => 'yes',
- 'screenx' => '200px',
- 'screeny' => '200px'
- );
- return $value . "<br>" . anchor_popup('panel/get_notas/cliente/' . $row->id, img("back/images/notas.png"), $atts) .
- "<span class='resaltar'> " . $this->get_total_notas2($row->id) . " </span>" .
- anchor_popup('panel/get_cursos_interes/' . $row->id, img("back/images/notas2.png"), $atts);
- }
- public function get_notas($concepto, $id)
- {
- $crud = new grocery_CRUD();
- $crud->where('concepto', $concepto);
- $crud->where('id_concepto', $id);
- $crud->set_table('notas');
- $crud->set_subject('Nota');
- $crud->unset_print();
- $crud->unset_export();
- $crud->unset_texteditor('texto');
- $crud->unset_edit_fields('concepto', 'id_concepto');
- $crud->unset_columns('concepto', 'id_concepto');
- $crud->required_fields('fecha', 'texto');
- $crud->field_type('concepto', 'hidden', $concepto);
- $crud->field_type('id_concepto', 'hidden', $id);
- //$crud->unset_read();
- $output = $crud->render();
- $this->load->view('panel/panel2.php',$output);
- }
- public function get_cursos_interes($id_cliente)
- {
- $crud = new grocery_CRUD();
- $crud->where('id_cliente', $id_cliente);
- $crud->set_table('cursos_interes');
- $crud->set_subject('Curso de Interes');
- $crud->set_relation('id_curso','cursos','{nombre}');
- $crud->display_as('id_curso','Curso');
- $crud->unset_print();
- $crud->unset_export();
- $crud->unset_texteditor('observaciones');
- $crud->unset_columns('id_cliente');
- $crud->field_type('id_cliente', 'hidden', $id_cliente);
- $crud->required_fields('id_curso');
- $crud->unset_read();
- $output = $crud->render();
- $this->load->view('panel/panel2.php',$output);
- }
- public function get_total_notas()
- {
- $id_cliente = trim(strip_tags($this->input->post("id_cliente")));
- $total = $this->Clientes_model->get_total_notas($id_cliente);
- echo $total;
- }
- public function get_total_notas2($id_cliente)
- {
- $id_cliente = trim(strip_tags($id_cliente));
- $total = $this->Clientes_model->get_total_notas($id_cliente);
- return $total;
- }
- public function cursos_tomados($id_cliente)
- {
- $id_cliente = trim(strip_tags($id_cliente));
- $data["cliente"] = $this->Clientes_model->get_cliente($id_cliente);
- $data["cursos"] = $this->Clientes_model->get_cursos_tomados($id_cliente);
- $data["total_notas"] = $this->Clientes_model->get_total_notas($id_cliente);
- $this->load->view('panel/cursos_tomados', $data);
- }
- /////////////////////////// CLIENTES //////////////////////////////
- ///////////////////////////// CURSOS ////////////////////////////////
- public function categorias()
- {
- $crud = new grocery_CRUD();
- $crud->set_theme('datatables');
- $crud->set_table('categorias');
- $crud->set_subject('Categoría');
- $crud->required_fields('nombre');
- $crud->unset_read();
- $output = $crud->render();
- $this->_example_output($output);
- }
- public function cursos()
- {
- $crud = new grocery_CRUD();
- $crud->set_theme('datatables');
- $crud->set_table('cursos');
- $crud->set_relation('categoria','categorias','{nombre}');
- $crud->set_subject('Curso');
- $crud->set_field_upload('pdf','pdf');
- $crud->unset_texteditor('descripcion');
- $crud->required_fields('nombre', 'categoria');
- $crud->unset_read();
- $output = $crud->render();
- $this->_example_output($output);
- }
- public function cursos_programados()
- {
- $crud = new grocery_CRUD();
- $crud->set_theme('datatables');
- $crud->set_table('cursos_prog');
- $crud->order_by('fecini');
- $crud->set_relation('id_curso','cursos','{nombre}');
- $crud->set_relation('id_organizador','organizadores','{nombre}');
- $crud->set_relation('id_instructor','instructores','{nombre} {apellidos}');
- $crud->display_as('id_curso','Curso')
- ->display_as('id_organizador','Organizador')
- ->display_as('id_instructor','Instructor')
- ->display_as('duracion','Duración (días)')
- ->display_as('horas','Duración (horas)')
- ->display_as('id','Clave')
- ->display_as('fecini','Fecha inicio');
- $crud->set_subject('Curso programado');
- $crud->required_fields('id_curso');
- $crud->callback_column('duracion', array($this, 'link_horario'));
- $crud->callback_column('precio',array($this,'precio_cp'));
- $crud->unset_texteditor('observaciones');
- $crud->add_action('Asistentes', '', 'panel/lista_asistentes','ui-icon-document');
- $crud->order_by('fecini','desc');
- $crud->callback_add_field('duracion',array($this,'add_field_duracion'));
- $crud->callback_add_field('horas',array($this,'add_field_horas'));
- $crud->callback_edit_field('duracion',array($this,'edit_field_duracion'));
- $crud->callback_edit_field('horas',array($this,'edit_field_horas'));
- $crud->unset_read();
- $output = $crud->render();
- $this->_example_output($output);
- }
- function add_field_duracion()
- {
- return '<input type="number" min="1" value="1" name="duracion" id="duracion" class="numeric">';
- }
- function add_field_horas()
- {
- return '<input type="number" min="1" value="1" name="horas" id="horas" class="numeric">';
- }
- function edit_field_duracion($value, $primary_key)
- {
- return '<input type="number" min="1" value="' . $value . '" name="duracion" id="duracion" class="numeric">';
- }
- function edit_field_horas($value, $primary_key)
- {
- return '<input type="number" min="1" value="' . $value . '" name="horas" id="horas" class="numeric">';
- }
- function precio_cp($value, $row)
- {
- return "$ " . number_format($value, 2);
- }
- function link_horario($value, $row)
- {
- $atts = array(
- 'width' => '900px',
- 'height' => '300',
- 'scrollbars' => 'yes',
- 'status' => 'yes',
- 'resizable' => 'yes',
- 'screenx' => '200px',
- 'screeny' => '200px'
- );
- return $value . " <small>" . anchor_popup('panel/horarios/' . $row->id, "(Horarios)", $atts) . "</small>";
- }
- public function horarios($id_curso_prog)
- {
- $crud = new grocery_CRUD();
- $crud->where('id_curso_prog', $id_curso_prog);
- $crud->set_table('horarios');
- $crud->set_subject('Horario');
- $crud->unset_print();
- $crud->unset_export();
- $crud->unset_columns('id_curso_prog');
- $crud->fields('id_curso_prog', 'fecha', 'horaini', 'horafin');
- $crud->required_fields('fecha', 'horaini', 'horafin');
- $crud->field_type('id_curso_prog', 'hidden', $id_curso_prog);
- $crud->unset_read();
- $output = $crud->render();
- $this->load->view('panel/panel2.php',$output);
- }
- public function lista_asistentes($id_curso_prog)
- {
- $data["cp"] = $this->Cursos_model->get_curso_programado($id_curso_prog);
- $data["fechafin"] = $this->Cursos_model->get_fechafin($id_curso_prog);
- $data["asistentes"] = $this->Cursos_model->get_asistentes_cp($id_curso_prog);
- $data["horarios"] = $this->Cursos_model->get_horarios($id_curso_prog);
- $this->load->view('panel/lista_asistentes', $data);
- }
- public function lista_asistentes_preview($id_curso_prog)
- {
- $data["cp"] = $this->Cursos_model->get_curso_programado($id_curso_prog);
- $data["fechafin"] = $this->Cursos_model->get_fechafin($id_curso_prog);
- $data["asistentes"] = $this->Cursos_model->get_asistentes_cp($id_curso_prog);
- $data["horarios"] = $this->Cursos_model->get_horarios($id_curso_prog);
- $this->load->view('panel/lista_asistentes_preview', $data);
- }
- public function lista_asistentes_preview2($id_curso_prog)
- {
- $data["cp"] = $this->Cursos_model->get_curso_programado($id_curso_prog);
- $data["fechafin"] = $this->Cursos_model->get_fechafin($id_curso_prog);
- $data["asistentes"] = $this->Cursos_model->get_asistentes2_cp($id_curso_prog);
- $data["horarios"] = $this->Cursos_model->get_horarios($id_curso_prog);
- $this->load->view('panel/lista_asistentes_preview2', $data);
- }
- public function lista_asistentes_excel()
- {
- header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
- header('Content-Disposition: attachment;filename="exportado.xls"');
- header('Cache-Control: max-age=0');
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
- $objWriter->save('php://output');
- echo iconv("UTF-8", "ISO-8859-1",$this->input->post('datos'));
- }
- public function lista_aprobados($id_curso_prog)
- {
- $data["cp"] = $this->Cursos_model->get_curso_programado($id_curso_prog);
- $data["aprobados"] = $this->Cursos_model->get_aprobados_cp($id_curso_prog);
- $this->load->view('panel/lista_aprobados', $data);
- }
- public function update_asistente_cp()
- {
- $this->form_validation->set_rules("observaciones", "Nombre", "trim|strip_tags|xss");
- $this->form_validation->set_rules("descuento", "Descuentos", "numeric|xss");
- $this->form_validation->set_rules("cargo", "Cargos", "numeric|xss");
- $this->form_validation->set_rules("iva", "IVA", "numeric|xss");
- $this->form_validation->set_message('required', "El campo %s es un dato obligatorio");
- $this->form_validation->set_message('numeric', "%s debe ser un valor númerico");
- if($this->form_validation->run() == FALSE){
- $this->lista_asistentes($this->input->post('id_curso_prog'));
- }else{
- $data = array(
- 'id' => $this->input->post('id'),
- 'descuento' => $this->input->post('descuento'),
- 'cargo' => $this->input->post('cargo'),
- 'iva' => $this->input->post('iva'),
- 'observaciones' => $this->input->post('observaciones'),
- );
- $update = $this->Cursos_model->update_asistente_cp($data);
- if($update){
- $msg = "<p>¡Datos actualizados correctamente!</p>";
- }else{
- $msg = "<p>¡Los datos NO pudieron ser actualizados, verifique con el Administrador!</p>";
- }
- $this->session->set_flashdata('msg', $msg);
- redirect("panel/lista_asistentes/" . $this->input->post('id_curso_prog'), "refresh");
- }
- }
- public function update_aprobado_cp()
- {
- //print_r($this->input->post()); die();
- $this->form_validation->set_rules("observaciones", "Observaciones", "trim|strip_tags|xss");
- if($this->form_validation->run() == FALSE){
- $this->lista_aprobados($this->input->post('id_curso_prog'));
- }else{
- if(isset($_POST['acreditado'])) $acreditado = 1; else $acreditado = 0;
- if(isset($_POST['certificado'])) $certificado = 1; else $certificado = 0;
- $data = array(
- 'id' => $this->input->post('id'),
- 'acreditado' => $acreditado,
- 'certificado' => $certificado,
- 'fecha' => $this->input->post('fecha'),
- 'observaciones' => $this->input->post('observaciones'),
- );
- $update = $this->Cursos_model->update_aprobado_cp($data);
- if($update){
- $msg = "<p>¡Datos actualizados correctamente!</p>";
- }else{
- $msg = "<p>¡Los datos NO pudieron ser actualizados, verifique con el Administrador!</p>";
- }
- $this->session->set_flashdata('msg', $msg);
- redirect("panel/lista_aprobados/" . $this->input->post('id_curso_prog'), "refresh");
- }
- }
- public function asistente_cp_pagos($id_asistente, $id_curso_prog)
- {
- $data["cp"] = $this->Cursos_model->get_curso_programado($id_curso_prog);
- $data["asistente"] = $this->Cursos_model->get_asistente_cp($id_asistente);
- $data["pagos"] = $this->Cursos_model->get_asistente_cp_pagos($id_asistente);
- $this->load->view('panel/asistente_cp_pagos', $data);
- }
- public function asistente_cp_nuevo_pago()
- {
- $this->form_validation->set_rules("fecha", "Fecha", "required|xss");
- $this->form_validation->set_rules("pago", "Pago", "required|numeric");
- $this->form_validation->set_rules("observaciones", "Observaciones", "strip_tags");
- $this->form_validation->set_message('required', "El campo %s es un dato obligatorio");
- $this->form_validation->set_message('numeric', "%s debe ser un valor númerico");
- if($this->form_validation->run() == FALSE){
- $this->asistente_cp_pagos($this->input->post('id_asistente'), $this->input->post('id_curso_prog'));
- }else{
- $agregar = $this->Cursos_model->asistente_cp_nuevo_pago($this->input->post());
- if($agregar){
- $msg = "<p>¡Pago agregado correctamente!</p>";
- }else{
- $msg = "<p>¡El pago NO pudo ser agregado, verifique con el Administrador!</p>";
- }
- $this->session->set_flashdata('msg', $msg);
- redirect("panel/asistente_cp_pagos/" . $this->input->post('id_asistente') . "/" .
- $this->input->post('id_curso_prog'), "refresh");
- }
- }
- public function update_asistente_cp_pago()
- {
- $this->form_validation->set_rules("fecha", "Fecha", "required|xss");
- $this->form_validation->set_rules("pago", "Pago", "required|numeric");
- $this->form_validation->set_rules("observaciones", "Observaciones", "strip_tags");
- $this->form_validation->set_message('required', "El campo %s es un dato obligatorio");
- $this->form_validation->set_message('numeric', "%s debe ser un valor númerico");
- if($this->form_validation->run() == FALSE){
- $this->asistente_cp_pagos($this->input->post('id_asistente'), $this->input->post('id_curso_prog'));
- }else{
- $update = $this->Cursos_model->update_asistente_cp_pago($this->input->post());
- if($update) $msg = "<p>¡Datos actualizados correctamente!</p>";
- else $msg = "<p>¡Los datos NO pudieron ser actualizados, verifique con el Administrador!</p>";
- $this->session->set_flashdata('msg', $msg);
- redirect("panel/asistente_cp_pagos/" . $this->input->post('id_asistente') . "/" .
- $this->input->post('id_curso_prog'), "refresh");
- }
- }
- /*public function agregar_asistente_cp()
- {
- $this->form_validation->set_rules("cliente", "Cliente", "required|xss");
- $this->form_validation->set_message('required', "El campo %s es un dato obligatorio");
- if($this->form_validation->run() == FALSE){
- $this->lista_asistentes($this->input->post('id_curso_prog'));
- }else{
- $cliente = explode("-", strip_tags(trim($this->input->post("cliente"))));
- $id_cliente = (int)$cliente[0];
- $data = array(
- 'id_curso_prog' => $this->input->post("id_curso_prog"),
- 'id_cliente' => $id_cliente,
- 'total' => 0,
- 'descuento' => 0,
- 'estado' => 1,
- 'observaciones' => '',
- 'cargo' => 0,
- 'iva' => 0,
- );
- $agregar = $this->Cursos_model->agregar_asistente_cp($data);
- if($agregar) $msg = "<p>¡Asistente agregado correctamente!</p>";
- else $msg = "<p>¡El Asistente NO pudo ser agregado, verifique con el Administrador!</p>";
- $this->session->set_flashdata('msg', $msg);
- redirect("panel/lista_asistentes/" . $this->input->post('id_curso_prog'), "refresh");
- }
- }*/
- public function clientes_para_cp($id_curso_prog)
- {
- $data["cp"] = $this->Cursos_model->get_curso_programado($id_curso_prog);
- $data["clientes"] = $this->Clientes_model->get_clientes_autocomplete2();
- $this->load->view('panel/clientes_para_cp', $data);
- }
- public function agregar_asistentes_cp()
- {
- $ids = array();
- foreach($this->input->post() as $val){
- if(strpos($val, "cliente_") !== FALSE){
- $data = explode("_", strip_tags(trim($val)));
- $ids[] = (int)$data[1];
- }
- }
- if(count($ids) > 0){
- foreach($ids as $id_cliente){
- $data = array(
- 'id_curso_prog' => $this->input->post("id_cp"),
- 'id_cliente' => $id_cliente,
- 'total' => 0,
- 'descuento' => 0,
- 'estado' => 1,
- 'observaciones' => '',
- 'cargo' => 0,
- 'iva' => 0,
- );
- $agregar = $this->Cursos_model->agregar_asistente_cp($data);
- }
- $msg = "<p>¡Los clientes elegidos han sido agregados a este curso!</p>";
- $this->session->set_flashdata('msg', $msg);
- redirect("panel/lista_asistentes/" . $this->input->post('id_cp'), "refresh");
- }else{
- $msg = "<p>¡Elige por favor los clientes que deseas agregar a este curso!</p>";
- $this->session->set_flashdata('msg', $msg);
- redirect("panel/clientes_para_cp/" . $this->input->post('id_cp'), "refresh");
- }
- }
- public function eliminar_asistente_cp($id_cp, $id_asistente)
- {
- $id_cp = (int)strip_tags(trim($id_cp));
- $id_asistente = (int)strip_tags(trim($id_asistente));
- if($id_cp <= 0 || $id_asistente <= 0) redirect("panel/cursos_programados");
- $eliminar = $this->Cursos_model->eliminar_asistente_cp($id_asistente);
- if($eliminar) $msg = "<p>Asistente quitado correctamente!</p>";
- else $msg = "<p>¡El asistente NO pudo ser quitado, verifique con el Administrador!</p>";
- $this->session->set_flashdata('msg', $msg);
- redirect("panel/lista_asistentes/" . $id_cp, "refresh");
- }
- public function eliminar_asistente_cp_pago($id_cp, $id_asistente, $id_pago, $pago)
- {
- $id_cp = (int)strip_tags(trim($id_cp));
- $id_asistente = (int)strip_tags(trim($id_asistente));
- $id_pago = (int)strip_tags(trim($id_pago));
- $pago = (float)strip_tags(trim($pago));
- if($id_cp <= 0 || $id_asistente <= 0 || $id_pago <= 0 || $pago <= 0) redirect("panel/cursos_programados");
- $data = array(
- 'id_asistente' => $id_asistente,
- 'id_pago' => $id_pago,
- 'pago' => $pago
- );
- $eliminar = $this->Cursos_model->eliminar_asistente_cp_pago($data);
- if($eliminar) $msg = "<p>Pago eliminado correctamente!</p>";
- else $msg = "<p>¡El pago NO pudo ser eliminado, verifique con el Administrador!</p>";
- $this->session->set_flashdata('msg', $msg);
- redirect("panel/asistente_cp_pagos/" . $id_asistente. "/" . $id_cp, "refresh");
- }
- public function cursos_interes()
- {
- $crud = new grocery_CRUD();
- $crud->set_theme('datatables');
- $crud->set_table('cursos_interes');
- $crud->set_relation('id_cliente','clientes','{nombre} {apellidos} ({usuario})');
- $crud->set_relation('id_curso','cursos','{nombre}');
- $crud->display_as('id_cliente','Cliente');
- $crud->display_as('id_curso','Curso');
- $crud->set_subject('Interes por Curso');
- $crud->required_fields('id_cliente', 'id_curso');
- $crud->columns("id_curso", "id_cliente", "datos", "observaciones");
- $crud->fields("id_curso", "id_cliente", "observaciones");
- $crud->callback_column('datos',array($this,'_callback_datos'));
- //$crud->set_rules('posicion','Posición','numeric');
- $crud->unset_read();
- $output = $crud->render();
- $this->_example_output($output);
- }
- public function _callback_datos($value, $row)
- {
- $cliente = $this->Clientes_model->get_cliente($row->id_cliente);
- $cliente = $cliente;
- return $cliente->correos . "<br>\t" .
- $cliente->telefonos;
- }
- ///////////////////////////// CURSOS ////////////////////////////////
- /////////////////////////// CONTENIDOS //////////////////////////////
- public function menu()
- {
- $crud = new grocery_CRUD();
- $crud->set_theme('datatables');
- $crud->set_table('menu');
- $crud->set_subject('Item');
- $crud->required_fields('titulo', 'slug');
- $crud->set_rules('posicion','Posición','numeric');
- $crud->callback_add_field('titulo',array($this,'add_field_titulo'));
- $crud->callback_add_field('slug',array($this,'add_field_slug'));
- $crud->callback_add_field('posicion',array($this,'add_field_posicion'));
- $crud->callback_add_field('id_seccion_default',array($this,'add_field_seccion_default'));
- $crud->callback_edit_field('titulo',array($this,'edit_field_titulo'));
- $crud->callback_edit_field('slug',array($this,'edit_field_slug'));
- $crud->callback_edit_field('posicion',array($this,'edit_field_posicion'));
- $crud->callback_edit_field('id_seccion_default',array($this,'edit_field_seccion_default'));
- $crud->unset_read();
- $output = $crud->render();
- $this->_example_output($output);
- }
- // Secciones
- public function secciones()
- {
- $crud = new grocery_CRUD();
- $crud->set_theme('datatables');
- $crud->set_table('secciones');
- $crud->set_relation('id_menu','menu','{titulo}');
- $crud->display_as('id_menu','Menú');
- $crud->display_as('slug','Título amigable');
- $crud->set_subject('Sección');
- $crud->required_fields('titulo', 'slug');
- $crud->callback_add_field('titulo',array($this,'add_field_titulo'));
- $crud->callback_add_field('slug',array($this,'add_field_slug'));
- $crud->callback_add_field('posicion',array($this,'add_field_posicion'));
- $crud->callback_edit_field('titulo',array($this,'edit_field_titulo'));
- $crud->callback_edit_field('slug',array($this,'edit_field_slug'));
- $crud->callback_edit_field('posicion',array($this,'edit_field_posicion'));
- $crud->unset_read();
- $output = $crud->render();
- $this->_example_output($output);
- }
- // Blog
- public function blog()
- {
- $crud = new grocery_CRUD();
- $crud->set_theme('datatables');
- $crud->set_table('blog');
- $crud->display_as('slug','Título amigable');
- $crud->set_field_upload('portada','uploads/images/blog');
- $crud->set_subject('Noticia');
- $crud->unset_texteditor('estilos');
- $crud->required_fields('titulo', 'slug');
- $crud->callback_add_field('titulo',array($this,'add_field_titulo'));
- $crud->callback_add_field('slug',array($this,'add_field_slug'));
- $crud->callback_edit_field('titulo',array($this,'edit_field_titulo'));
- $crud->callback_edit_field('slug',array($this,'edit_field_slug'));
- $crud->unset_read();
- $output = $crud->render();
- $this->_example_output($output);
- }
- // Funciones auxiliares
- function add_field_titulo()
- {
- return '<input type="text" name="titulo" id="titulo" class="toslug">';
- }
- function add_field_slug()
- {
- return '<input type="text" name="slug" id="slug" readonly="readonly">';
- }
- function add_field_posicion()
- {
- return '<input type="number" min="1" value="1" name="posicion" id="posicion" class="numeric">';
- }
- function add_field_seccion_default()
- {
- return '<input type="number" min="1" value="1" name="id_seccion_default" id="id_seccion_default" class="numeric">';
- }
- function edit_field_titulo($value, $primary_key)
- {
- return '<input type="text" value="' . $value . '" name="titulo" id="titulo" class="toslug">';
- }
- function edit_field_slug($value, $primary_key)
- {
- return '<input type="text" value="' . $value . '" name="slug" id="slug" readonly="readonly">';
- }
- function edit_field_posicion($value, $primary_key)
- {
- return '<input type="number" min="1" value="' . $value . '" name="posicion" id="posicion" class="numeric">';
- }
- function edit_field_seccion_default($value, $primary_key)
- {
- return '<input type="number" min="1" value="' . $value . '" name="id_seccion_default" id="id_seccion_default" class="numeric">';
- }
- /////////////////////////// /CONTENIDOS //////////////////////////////
- /////////////////////////// PRODUCTOS //////////////////////////////
- public function productos_cats()
- {
- $crud = new grocery_CRUD();
- $crud->set_theme('datatables');
- $crud->set_table('productos_cats');
- $crud->set_subject('Categoría');
- $crud->required_fields('nombre');
- $crud->unset_texteditor('descripcion', 'observaciones');
- $crud->unset_read();
- $output = $crud->render();
- $this->_example_output($output);
- }
- public function proveedores()
- {
- $crud = new grocery_CRUD();
- $crud->set_theme('datatables');
- $crud->set_table('proveedores');
- $crud->set_subject('Proveedor');
- $crud->required_fields('nombre');
- $crud->unset_texteditor('observaciones');
- $crud->unset_read();
- $output = $crud->render();
- $this->_example_output($output);
- }
- public function productos()
- {
- $crud = new grocery_CRUD();
- $crud->set_theme('datatables');
- $crud->set_table('productos');
- $crud->set_relation('categoria','productos_cats','{nombre}');
- $crud->set_relation('proveedor','proveedores','{nombre}');
- $crud->set_subject('Producto');
- $crud->set_field_upload('imagen','uploads/images/tienda');
- $crud->unset_texteditor('descripcion', 'observaciones');
- $crud->order_by('categoria', 'asc');
- $crud->required_fields('titulo', 'categoria');
- $crud->unset_fields('vendible');
- $crud->unset_columns('vendible');
- $crud->callback_column('visible', array($this, 'visible_si_no'));
- $crud->unset_read();
- /*$crud->callback_before_insert(function($post_array){
- if(isset($post_array["visible"])){
- $post_array["visible"] = 1;
- }else{
- $post_array["visible"] = 0;
- }
- return $post_array;
- });
- $crud->callback_before_update(function($post_array){
- if(isset($post_array["visible"])){
- $post_array["visible"] = 1;
- }else{
- $post_array["visible"] = 0;
- }
- return $post_array;
- });
- */
- $crud->callback_before_insert(array($this,'insert_visible'));
- $crud->callback_before_update(array($this,'update_visible'));
- $crud->callback_add_field('posicion',array($this,'add_field_posicion'));
- $crud->callback_add_field('visible',array($this,'add_field_visible'));
- $crud->callback_edit_field('posicion',array($this,'edit_field_posicion'));
- $crud->callback_edit_field('visible',array($this,'edit_field_visible'));
- $output = $crud->render();
- $this->_example_output($output);
- }
- function insert_visible($post_array)
- {
- if(isset($post_array["visible"])){
- $post_array["visible"] = 1;
- }else{
- $post_array["visible"] = 0;
- }
- return $post_array;
- }
- function update_visible($post_array, $primary_key)
- {
- if(isset($post_array["visible"])){
- $post_array["visible"] = 1;
- }else{
- $post_array["visible"] = 0;
- }
- return $post_array;
- }
- function visible_si_no($value, $row){
- if($value == 1) return "Si";
- return "No";
- }
- function add_field_visible()
- {
- $data = array(
- 'name' => 'visible',
- 'id' => 'visible',
- 'value' => '1',
- 'checked' => TRUE,
- );
- return form_checkbox($data);
- }
- function edit_field_visible($value, $primary_key)
- {
- $data = array(
- 'name' => 'visible',
- 'id' => 'visible',
- 'value' => "$value",
- 'checked' => $value == 1 ? TRUE : FALSE,
- );
- return form_checkbox($data);
- }
- // Pedidos
- public function pedidos()
- {
- $crud = new grocery_CRUD();
- $crud->set_theme('datatables');
- $crud->set_table('pedidos');
- $crud->set_relation('id_cliente','clientes','{nombre} {apellidos}');
- $crud->display_as('id_cliente','Cliente');
- $crud->set_subject('Pedido');
- $crud->unset_texteditor('observaciones');
- $crud->required_fields('id_cliente', 'fecha');
- $crud->callback_column('estado',array($this,'estado_pedido'));
- $crud->callback_column('observaciones', array($this, 'link_detalle'));
- $crud->callback_add_field('subtotal',array($this,'add_field_subtotal'));
- $crud->callback_edit_field('subtotal',array($this,'edit_field_subtotal'));
- $crud->callback_add_field('estado',array($this,'add_field_estado'));
- $crud->callback_edit_field('estado',array($this,'edit_field_estado'));
- $crud->unset_read();
- $output = $crud->render();
- $this->_example_output($output);
- }
- function add_field_estado()
- {
- $options = array(
- '1' => 'Recibido',
- '2' => 'Enviado',
- '3' => 'Cancelado',
- );
- return form_dropdown('estado', $options, '1');
- }
- function edit_field_estado($value, $primary_key)
- {
- $options = array(
- '1' => 'Recibido',
- '2' => 'Enviado',
- '3' => 'Cancelado',
- );
- return form_dropdown('estado', $options, $value);
- }
- function estado_pedido($value, $row)
- {
- $options = array(
- '1' => 'Recibido',
- '2' => 'Enviado',
- '3' => 'Cancelado',
- );
- return $options[$value];
- }
- function add_field_subtotal()
- {
- return '<input type="text" name="subtotal" id="subtotal" value="0" readonly="readonly">'
- . '<span> Una vez generado el Pedido de click en <strong>Editar pedido</strong> para agregarle productos.';
- }
- function edit_field_subtotal($value, $primary_key)
- {
- $atts = array(
- 'width' => '900px',
- 'height' => '300',
- 'scrollbars' => 'yes',
- 'status' => 'yes',
- 'resizable' => 'yes',
- 'screenx' => '200px',
- 'screeny' => '200px'
- );
- return '<input type="text" name="subtotal" id="subtotal" value="' . $value . '" readonly="readonly"> '
- . anchor_popup("panel/detalle_pedido/$primary_key", "Ver detalle del Pedido", $atts);
- }
- function link_detalle($value, $row)
- {
- $atts = array(
- 'width' => '900px',
- 'height' => '300',
- 'scrollbars' => 'yes',
- 'status' => 'yes',
- 'resizable' => 'yes',
- 'screenx' => '200px',
- 'screeny' => '200px'
- );
- return $value . " " . anchor_popup('panel/detalle_pedido/' . $row->id, "Ver detalle", $atts);
- }
- public function detalle_pedido($id_pedido)
- {
- $crud = new grocery_CRUD();
- //$crud->set_theme('datatables');
- $crud->set_table('pedidos_detalle');
- $crud->where('id_pedido', $id_pedido);
- $crud->display_as('id_producto','Producto');
- $crud->set_subject('Producto al Pedido');
- $crud->set_relation('id_producto','productos','{titulo}');
- $crud->required_fields('id_producto', 'cantidad');
- $crud->field_type('id_pedido', 'hidden', $id_pedido);
- $crud->add_action('Regresar al pedido', '', 'panel/pedidos/edit/' . $id_pedido,'ui-icon-document');
- $crud->unset_columns('id_pedido');
- $crud->callback_after_insert(array($this, 'after_insert_item_detalle'));
- $crud->callback_before_update(array($this, 'before_update_item_detalle'));
- $crud->callback_after_update(array($this, 'after_update_item_detalle'));
- $crud->callback_before_delete(array($this, 'before_delete_item_detalle'));
- $crud->unset_read();
- $output = $crud->render();
- $this->load->view('panel/panel3.php',$output);
- /*
- CAMBIAR FUNCIONALIDAD DEL FRONT ----------------------------
- */
- }
- function after_insert_item_detalle($post_array,$primary_key)
- {
- $pedido = $this->Tienda_model->after_insert_item_detalle($post_array);
- return $pedido;
- }
- function before_update_item_detalle($post_array,$primary_key)
- {
- $pedido = $this->Tienda_model->before_update_item_detalle($post_array,$primary_key);
- return $pedido;
- }
- function after_update_item_detalle($post_array,$primary_key)
- {
- $pedido = $this->Tienda_model->after_insert_item_detalle($post_array);
- return $pedido;
- }
- function before_delete_item_detalle($primary_key)
- {
- $pedido = $this->Tienda_model->before_delete_item_detalle($primary_key);
- return $pedido;
- }
- public function get_producto()
- {
- $producto = $this->Tienda_model->get_producto($this->input->post("id"));
- echo json_encode($producto);
- }
- /////////////////////////// /PRODUCTOS /////////////////////////////
- /////////////////////////// SLIDER /////////////////////////////
- public function slider()
- {
- $crud = new grocery_CRUD();
- $crud->set_theme('datatables');
- $crud->set_table('slider');
- $crud->set_subject('Imagen');
- $crud->set_field_upload('imagen','uploads/images/slider');
- $crud->unset_read();
- $output = $crud->render();
- $this->_example_output($output);
- }
- /////////////////////////// /SLIDER ////////////////////////////
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement