<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Manutencao_model extends CI_Model {

    function __construct() {
        parent::__construct();
    }


    function get($table, $fields, $where = '', $perpage = 0, $start = 0, $one = false, $array = 'array') {

        $this->db->select($fields);
        $this->db->from($table);
        $this->db->limit($perpage, $start);
//        $this->db->order_by('idUsuarios','desc');

        if ($where) {
            $this->db->where($where);
        }

        $query = $this->db->get();

        $result = !$one ? $query->result() : $query->row();
        return $result;
    }


    function getNotasDashBoardEmAberto($quitado){
        $P_Dia = date("Y-01-01");
        $U_Dia = date("Y-12-31");
        $ultimo_ano = 'DT_NOTA BETWEEN "'.$P_Dia.'" AND "'.$U_Dia.'"';
        $ultimos12_meses = 'DT_NOTA BETWEEN DATE_ADD(now(), INTERVAL -12 MONTH) AND now()';

        $this->db->where($quitado);
        $this->db->where($ultimos12_meses);
        $this->db->limit(5);
        $this->db->order_by('DT_NOTA', 'desc');
        return $this->db->get('tbl_002_notas')->result();

    }

    function getServicoPorPreventiva($idPreventiva) {
        $this->db->join('tbl_013_servicos as servico', 'servico.ID_SERVICO = servicopreventiva.SERVICO_ID', 'left');
        $this->db->where('PREVENTIVA_ID', $idPreventiva);
        $linhas = $this->db->get('tbl_rel_002_servico_por_preventiva as servicopreventiva')->result();

//        foreach ($linhas as $linha) {
//            $itens = new stdClass;
//            $this->db->where('SERVICO_ID', $linha->SERVICO_ID);
//            $this->db->join('tbl_rel_001_pecas_por_servico', 'tbl_012_pecas.ID_PECA = tbl_rel_001_pecas_por_servico.PECA_ID', 'left');
//
//            $itens->PECAS_SERVICO = $this->db->get('tbl_012_pecas')->result();
//            foreach (get_object_vars($itens) as $item => $valor) {
//                $linha->$item = $valor;
//            }
//        }
        return $linhas;
    }


    public function getPagamentoComNotasPorID($idPagamento){
//        $this->db->join('tbl_005_pagamento as pag', 'tbl_002_notas.PAGAMENTO_ID = pag.ID_PAGAMENTO', 'left');
        $this->db->where('PAGAMENTO_ID', $idPagamento);
        return $this->db->get('tbl_002_notas')->result();

    }

    public function getChequesPorPagamentoID($idPagamento){
        $this->db->where('PAGAMENTO_ID', $idPagamento);
        return $this->db->get('tbl_003_cheques')->result();
    }

    public function getBoletosPorPagamentoID($idPagamento){
        $this->db->where('PAGAMENTO_ID', $idPagamento);
        return $this->db->get('tbl_004_boletos')->result();
    }

    public function getPagamentos(){
//        $this->db->join('tbl_005_pagamento as pag', 'tbl_002_notas.PAGAMENTO_ID = pag.ID_PAGAMENTO', 'left');
//        $this->db->where('PAGAMENTO_ID', $idPagamento);
        $this->db->order_by('ID_PAGAMENTO', 'desc');
        return $this->db->get('tbl_005_pagamento')->result();

    }

    public function getPedidoPorNumero($numeroPedido){
        $this->db->where('NU_PEDIDO', $numeroPedido);
        return $this->db->get('tbl_002_notas')->row();

    }

    public function getPagamentoComNotas(){
        $this->db->join('tbl_005_pagamento as pag', 'tbl_002_notas.PAGAMENTO_ID = pag.ID_PAGAMENTO', 'left');
//        $this->db->where('PAGAMENTO_ID', $idPagamento);
        return $this->db->get('tbl_002_notas')->result();

    }

    public function getNotasDoDiaAtual(){
        $this->db->where('DT_NOTA = CURDATE()');
        return $this->db->get('tbl_002_notas')->result();
    }

    public function getTodosPedidosComFiltro(){
//        $this->db->where('DT_NOTA = CURDATE()');
        return $this->db->get('tbl_002_notas')->result();
    }

    public function getTodosRegistros($tabela){
        return $this->db->get($tabela)->result();
    }

    public function getNotasEmAberto(){
        $P_Dia = date("Y-08-01");
        $U_Dia = date("Y-08-27");
//        $ultimo_ano = 'DT_NOTA BETWEEN "'.$P_Dia.'" AND "'.$U_Dia.'"';
        $this->db->where('DT_QUITADO is null');
//        $this->db->where($ultimo_ano);

        return $this->db->get('tbl_002_notas')->result();
    }

    public function getNotasMesCorrente(){
//        $ultimos12_meses = 'DT_NOTA BETWEEN DATE_ADD(now(), INTERVAL -12 MONTH) AND now()';
//        $this->db->where('');
        $this->db->where(' MONTH(DT_NOTA)=MONTH(CURDATE())');
        $this->db->order_by('DT_NOTA', 'desc');
        return $this->db->get('tbl_002_notas')->result();
    }

    public function getNotasFiltro(){
        $this->db->order_by('DT_NOTA', 'desc');
        return $this->db->get('tbl_002_notas')->result();
    }


    function getById($id) {
        $this->db->where('ID_NOTA', $id);
        $this->db->limit(1);
        return $this->db->get('tbl_002_notas')->row();
    }

    function getPagamentoPorID($id) {
        $this->db->where('ID_PAGAMENTO', $id);
        $this->db->limit(1);
        return $this->db->get('tbl_005_pagamento')->row();
    }

    function getNotaPorID($id) {
        $this->db->where('ID_NOTA', $id);
        $this->db->limit(1);
        return $this->db->get('tbl_002_notas')->row();
    }





    function add($table, $data) {
        $this->db->insert($table, $data);
        if ($this->db->affected_rows() == '1') {
            return $this->db->insert_id();
        }

        return FALSE;
    }

    function edit($table, $data, $fieldID, $ID) {
        $this->db->where($fieldID, $ID);
        $this->db->update($table, $data);

        if ($this->db->affected_rows() >= 0) {
            return TRUE;
        }

        return FALSE;
    }

    function delete($table, $fieldID, $ID) {
        $this->db->where($fieldID, $ID);
        $this->db->delete($table);
        if ($this->db->affected_rows() == '1') {
            return TRUE;
        }

        return FALSE;
    }

    function count($table) {
        return $this->db->count_all($table);
    }

    public function addFotos($string, array $imagemAnexada, $true) {

    }


}
