Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 10.71 KB | None | 0 0
  1. <?php
  2.  
  3. class Encomendas extends CI_Controller
  4. {
  5.     /*
  6.      | Contructor.
  7.      */
  8.     function __construct()
  9.     {
  10.         parent::__construct();
  11.        
  12.         $this->load->model('encomendas_model');
  13.  
  14.         // Carregar a lib de validação de formulário.
  15.         //
  16.         $this->load->library('form_validation');
  17.  
  18.  
  19.         //
  20.         //
  21.         $this->load->helper('date');
  22.     }
  23.  
  24.  
  25.     /*
  26.      | Página Inicial
  27.      */
  28.     function index()
  29.     {
  30.         // Configurar a class de paginação..
  31.         //
  32.         # Carregar a class.
  33.         #
  34.         $this->load->library('pagination');
  35.  
  36.         # Configurar.
  37.         #
  38.         if(strlen($this->uri->segment(3)) == 32):
  39.             $config['uri_segment'] = 4;
  40.             $config['base_url']   = $this->config->item('base_url') . 'encomendas/index/' . $this->uri->segment(3) . '/';
  41.         else:
  42.             $config['uri_segment'] = 3;
  43.             $config['base_url']   = $this->config->item('base_url') . 'encomendas/index/';
  44.         endif;
  45.         $config['total_rows'] = $this->encomendas_model->contarTodos();
  46.         $config['per_page']   = '15';
  47.         $config['num_links']  = 3;
  48.        
  49.        
  50.         # HTML
  51.         #
  52.         //
  53.         $config['full_tag_open']  = '<ul class="paginacao">';
  54.         $config['full_tag_close'] = '</ul>';
  55.  
  56.         // < Primeira
  57.         $config['first_link'] = '&lsaquo; Primeira';
  58.         $config['first_tag_open'] = '<li>';
  59.         $config['first_tag_close'] = '</li>';
  60.  
  61.         // Última >
  62.         $config['last_link'] = 'Última &rsaquo;';
  63.         $config['last_tag_open'] = '<li>';
  64.         $config['last_tag_close'] = '</li>';
  65.  
  66.         // >
  67.         $config['next_link'] = '>';
  68.         $config['next_tag_open'] = '<li>';
  69.         $config['next_tag_close'] = '</li>';
  70.  
  71.         // <
  72.         $config['prev_link'] = '<';
  73.         $config['prev_tag_open'] = '<li>';
  74.         $config['prev_tag_close'] = '</li>';
  75.  
  76.         // Página Actual
  77.         $config['cur_tag_open'] = '<li class="sel">';
  78.         $config['cur_tag_close'] = '</li>';
  79.  
  80.         // Numeração.
  81.         $config['num_tag_open'] = '<li>';
  82.         $config['num_tag_close'] = '</li>';
  83.  
  84.  
  85.         // Buscar os clientes.
  86.         //
  87.         if(strlen($this->uri->segment(3)) == 32):
  88.             $data['encomendas'] = $this->encomendas_model->ListaPaginar($config['per_page'], $this->uri->segment(4));
  89.         else:
  90.             $data['encomendas'] = $this->encomendas_model->ListaPaginar($config['per_page'], $this->uri->segment(3));
  91.         endif;
  92.  
  93.  
  94.         // Criação dos links da paginação..
  95.         //
  96.         $this->pagination->initialize($config);
  97.         $data['links'] = $this->pagination->create_links();
  98.  
  99.         $data['fornecedores'] = array('' => '-', '1' => 'CART ', '2' => 'Piwko', '3' => 'Ermes');
  100.         $data['responsaveis'] = array('' => '-', '1' => 'Carlos ', '2' => 'Joel', '3' => 'Filipe', '4' => 'Bruno', '5' => 'Andreia');
  101.         $data['estados'] = array('' => '-', '1' => 'Concluido', '2' => 'Em Produção', '3' => 'Em Despacho', '4' => 'Próxima Produção');
  102.         $data['cores_t']  = array('1' => '#9dc415', '2' => '#f2b03e', '3' => '#4f3ef2', '4' => '#3366FF');
  103.  
  104.  
  105.  
  106.  
  107.  
  108.         // Mostrar a página inicial.
  109.         //
  110.         $this->load->view('encomendas/index', $data);
  111.     }
  112.  
  113.  
  114.     /*
  115.      | Criar encomendas.
  116.      */
  117.     function criar()
  118.     {
  119.         // Criar arrays em branco.
  120.         //
  121.         $dados = array();
  122.  
  123.  
  124.         // Regras de validação.
  125.         //
  126.         $this->form_validation->set_rules('data', 'Data', 'callback_checkDateFormat');
  127.         $this->form_validation->set_rules('responsavel', 'responsavel', 'required');
  128.         $this->form_validation->set_rules('qtd', 'Quantidade', 'required');
  129.         $this->form_validation->set_rules('cliente', 'Cliente', 'required');
  130.         $this->form_validation->set_rules('envio', 'Envio');
  131.         $this->form_validation->set_rules('fornecedor', 'Fornecedor');
  132.         $this->form_validation->set_rules('track_number', 'Track Number');
  133.         $this->form_validation->set_rules('estado', 'Estado', 'required');
  134.         $this->form_validation->set_rules('observacoes', 'Observações', 'min_length[5]');
  135.  
  136.  
  137.         // Traduzir os erros para português.
  138.         //
  139.         $this->form_validation->set_message('required', 'O campo "%s" é obrigatório!');
  140.         $this->form_validation->set_message('min_length', 'O campo "%s" deve ter no mínimo %s caracteres!');
  141.         $this->form_validation->set_message('numeric', 'O campo "%s" só pode conter numeros!');
  142.  
  143.  
  144.         // Validar o formulário.
  145.         //
  146.         if ($this->form_validation->run() == FALSE):
  147.             // Para enviar para a página.
  148.             //
  149.             $dados['fornecedores'] = array('' => '-', '1' => 'CART ', '2' => 'Piwko', '3' => 'Ermes');
  150.             $dados['responsaveis'] = array('' => '-', '1' => 'Carlos ', '2' => 'Joel', '3' => 'Filipe', '4' => 'Bruno', '5' => 'Andreia');
  151.             $dados['estados'] = array('' => '-', '1' => 'Concluido', '2' => 'Em Produção', '3' => 'Em Despacho', '4' => 'Próxima Produção');
  152.  
  153.  
  154.             // Mostrar a página de criar.
  155.             //
  156.             $this->load->view('encomendas/criar', $dados); 
  157.         else:
  158.             // Converter a Data!
  159.             //
  160.             $data = $this->input->post('data');
  161.             $data = explode('-', $data);
  162.             $data = human_to_unix($data[2] . '-' . $data[1] . '-' . $data[0] . ' 00:00:00 PM');
  163.  
  164.  
  165.             // Adicionar o cliente.
  166.             //
  167.             $data = array(
  168.                 'data'         => $data,
  169.                 'qtd'          => $this->input->post('qtd'),
  170.                 'responsavel'  => $this->input->post('responsavel'),
  171.                 'cliente'      => $this->input->post('cliente'),
  172.                 'envio'        => $this->input->post('envio'),
  173.                 'fornecedor'   => $this->input->post('fornecedor'),
  174.                 'track_number' => $this->input->post('track_number'),
  175.                 'qtd'          => $this->input->post('qtd'),
  176.                 'estado'       => $this->input->post('estado'),
  177.                 'observacoes'  => $this->input->post('observacoes')
  178.             );
  179.             $this->db->insert('encomendas', $data);
  180.  
  181.  
  182.             // Mostrar mensagem de sucesso!
  183.             //
  184.             $this->load->view('encomendas/sucesso');
  185.         endif;
  186.     }
  187.  
  188.  
  189.     /*
  190.      | Editar encomenda.
  191.      */
  192.     function editar()
  193.     {
  194.         $eid = $this->uri->segment(3);
  195.  
  196.  
  197.         // Verificar se a encomenda existe.
  198.         //
  199.         if(!$e = $this->encomendas_model->GetEncomenda($eid))
  200.         {
  201.             redirect('encomendas');
  202.             die();
  203.         }
  204.  
  205.         // Criar array em branco.
  206.         //
  207.         $dados = array();
  208.  
  209.  
  210.         // Colocar no array todos os dados relativos à encomenda.
  211.         //
  212.         $dados['personalizar'] = ($e->personalizar)? TRUE : FALSE ;
  213.         $dados['data'] = mdate("%d-%m-%Y", $e->data);
  214.         $dados['responsavel'] = $e->responsavel;
  215.         $dados['qtd'] = $e->qtd;
  216.         $dados['cliente'] = $e->cliente;
  217.         $dados['envio'] = $e->envio;
  218.         $dados['fornecedor'] = $e->fornecedor;
  219.         $dados['track_number'] = $e->track_number;
  220.         $dados['estado'] = $e->estado;
  221.         $dados['observacoes'] = $e->observacoes;
  222.  
  223.  
  224.         // Regras de validação.
  225.         //
  226.         $this->form_validation->set_rules('data', 'Data', 'callback_checkDateFormat');
  227.         $this->form_validation->set_rules('responsavel', 'responsavel', 'required');
  228.         $this->form_validation->set_rules('qtd', 'Quantidade', 'required');
  229.         $this->form_validation->set_rules('cliente', 'Cliente', 'required');
  230.         $this->form_validation->set_rules('envio', 'Envio');
  231.         $this->form_validation->set_rules('fornecedor', 'Fornecedor');
  232.         $this->form_validation->set_rules('track_number', 'Track Number');
  233.         $this->form_validation->set_rules('estado', 'Estado', 'required');
  234.         $this->form_validation->set_rules('observacoes', 'Observações', 'min_length[5]');
  235.  
  236.  
  237.         // Traduzir os erros para português.
  238.         //
  239.         $this->form_validation->set_message('required', 'O campo "%s" é obrigatório!');
  240.         $this->form_validation->set_message('min_length', 'O campo "%s" deve ter no mínimo %s caracteres!');
  241.         $this->form_validation->set_message('numeric', 'O campo "%s" só pode conter numeros!');
  242.  
  243.  
  244.         // Validar o formulário.
  245.         //
  246.         if ($this->form_validation->run() == FALSE):
  247.             // Para enviar para a página.
  248.             //
  249.             $dados['fornecedores'] = array('' => '-', '1' => 'CART ', '2' => 'Piwko', '3' => 'Ermes');
  250.             $dados['responsaveis'] = array('' => '-', '1' => 'Carlos ', '2' => 'Joel', '3' => 'Filipe', '4' => 'Bruno', '5' => 'Andreia');
  251.             $dados['estados'] = array('' => '-', '1' => 'Concluido', '2' => 'Em Produção', '3' => 'Em Despacho', '4' => 'Próxima Produção');
  252.  
  253.             // Mostrar a página de criar.
  254.             //
  255.             $this->load->view('encomendas/editar', $dados);
  256.         else:
  257.             // Converter a Data!
  258.             //
  259.             $data = $this->input->post('data');
  260.             $data = explode('-', $data);
  261.             $data = human_to_unix($data[2] . '-' . $data[1] . '-' . $data[0] . ' 00:00:00 PM');
  262.  
  263.  
  264.             // Adicionar o cliente.
  265.             //
  266.             $data = array(
  267.                 'personalizar' => $this->input->post('personalizar'),
  268.                 'data'         => $data,
  269.                 'responsavel'  => $this->input->post('responsavel'),
  270.                 'qtd'          => $this->input->post('qtd'),
  271.                 'cliente'      => $this->input->post('cliente'),
  272.                 'envio'        => $this->input->post('envio'),
  273.                 'fornecedor'   => $this->input->post('fornecedor'),
  274.                 'track_number' => $this->input->post('track_number'),
  275.                 'qtd'          => $this->input->post('qtd'),
  276.                 'estado'       => $this->input->post('estado'),
  277.                 'observacoes'  => $this->input->post('observacoes')
  278.             );
  279.             $this->db->where('id', $eid);
  280.             $this->db->update('encomendas', $data);
  281.  
  282.  
  283.             // Mostrar mensagem de sucesso!
  284.             //
  285.             //$this->load->view('encomendas/index');
  286.             redirect('encomendas');
  287.             die();
  288.         endif;
  289.     }
  290.  
  291.  
  292.     /*
  293.      | Apagar encomenda.
  294.      */
  295.     function apagar($eid)
  296.     {
  297.         // Se tiver a certeza que é para apagar.
  298.         if($this->input->post('apagar')):
  299.             // Apagar a encomenda.
  300.             //
  301.             $this->db->delete('encomendas', array('id' => $eid));
  302.    
  303.             // Redirecionar para a página de encomendas.
  304.             //
  305.             redirect('encomendas');
  306.             die();
  307.         endif;
  308.  
  309.         $q = $this->db->get_where('encomendas', array('id' => $eid), 1);
  310.         $dados['encomenda'] = $q->result();
  311.        
  312.  
  313.         // Mostrar a página de apagar.
  314.         //
  315.         $this->load->view('encomendas/apagar', $dados);
  316.     }
  317.  
  318.  
  319.     function pesquisar()
  320.     {
  321.         $this->load->helper('date');
  322.        
  323.        
  324.         // Criar um ID único.
  325.         //
  326.         $pid = md5(time() . time() . time());
  327.  
  328.  
  329.         // Converter a Data!
  330.         //
  331.         $data = $this->input->post('data');
  332.         if($data):
  333.             $data = explode('-', $data);
  334.             $data = human_to_unix($data[2] . '-' . $data[1] . '-' . $data[0] . ' 00:00:00 PM');
  335.         endif;
  336.  
  337.  
  338.         // Verificar os campos de pesquisa.
  339.         //
  340.         $data = array(
  341.             'pid'          => $pid,
  342.             'cliente'      => $this->input->post('cliente'),
  343.             'track_number' => $this->input->post('track_number'),
  344.             'estado'       => $this->input->post('estado'),
  345.             'data'         => $data
  346.         );
  347.        
  348.         $this->db->insert('pesquisar_encomendas', $data);
  349.  
  350.         // Redirecionar para a página de clientes.
  351.         //
  352.         redirect('encomendas/index/' . $pid . '/');
  353.     }
  354.  
  355.  
  356.     /* 
  357.      | Verificar a data.
  358.      */
  359.     function checkDateFormat($data)
  360.     {
  361.         if (preg_match ("/^([0-9]{2})-([0-9]{2})-([0-9]{4})$/", $data, $parts)):
  362.             if(checkdate($parts[2], $parts[1], $parts[3])):
  363.                 return true;
  364.             else:
  365.                 $this->form_validation->set_message('checkDateFormat', 'O campo "%s" não é válido! Formato: dd-mm-YYYY');
  366.                 return false;
  367.             endif;
  368.         else:
  369.             $this->form_validation->set_message('checkDateFormat', 'O campo "%s" não é válido! Formato: dd-mm-YYYY');
  370.             return false;
  371.         endif;
  372.     }
  373. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement