<?php

class Cotizaciones {

    const ACTIVO = 'ACTIVO';
    const INACTIVO = 'INACTIVO';

    public static function todas(){
        $sqlQuery  = "SELECT *, personaNOMBRES, personaAPELLIDOS FROM Cotizaciones 
                        INNER JOIN Personas ON Cotizaciones.personaID = Personas.personaID";
        return SicamDB::selectVariasFilas($sqlQuery, array());
    }
    
    
    public static function datos($cotizacionID){
        $sqlQuery = CotizacionesSQL::DATOS_COMPLETOS. "WHERE Cotizaciones.cotizacionID = ? ";
        return SicamDB::selectUnaFila($sqlQuery, array($cotizacionID));
    } 
    
    
    public static function datosCompletos($cotizacionID){
        $DatosCotizacion = Cotizaciones::datos($cotizacionID);
        $DatosCotizacion->Persona = Personas::datosCompletos($DatosCotizacion->personaID);
        $DatosCotizacion->Items = CotizacionesItems::deLaCotizacion($DatosCotizacion->cotizacionID);
        return $DatosCotizacion;
    }
    
    
    public static function datosCompletosPorConsecutivo($consecutivo){
        $cotizacionID = self::idPorConsecutivo($consecutivo)->cotizacionID;
        $DatosCotizacion = Cotizaciones::datos($cotizacionID);
        $DatosCotizacion->Persona = Personas::datosCompletos($DatosCotizacion->personaID);
        $DatosCotizacion->Items = CotizacionesItems::deLaCotizacion($DatosCotizacion->cotizacionID);
        return $DatosCotizacion;
    }
    
    
    public static function porConsecutivo($consecutivo){
        $sqlQuery  = "SELECT Cotizaciones.cotizacionCONSECUTIVO, Cotizaciones.cotizacionFCHVENCIMIENTO, Cotizaciones.cotizacionFCHCREADO, Cotizaciones.cotizacionOBSERVACIONES, tipoIdentificacionID, personaIDENTIFICACION, personaNOMBRES, personaAPELLIDOS, 
                    direccionNOMENCLATURA AS personaDIRECCION, direccionCIUDAD AS ciudadRESIDENCIA, telefonoNUMERO AS personaTELEFONO, correoDIRECCION AS personaCORREO,
                    CamaraServiciosCategorias.categoriaID as itemCategoriaID, CotizacionesItems.itemID, CotizacionesItems.servicioID AS itemServicioID, itemDESCRIPCION, itemCANTIDAD, itemVLRUNITARIO, 
                    itemVLRIMPUESTOS,itemIMPUESTO, itemOBSERVACIONES FROM Cotizaciones
                    INNER JOIN Personas ON Cotizaciones.personaID = Personas.personaID
                    INNER JOIN PersonasDirecciones ON Personas.personaID = PersonasDirecciones.personasID
                    INNER JOIN PersonasTelefonos ON Personas.personaID = PersonasTelefonos.personasID
                    INNER JOIN PersonasCorreos ON Personas.personaID = PersonasCorreos.personaID
                    INNER JOIN CotizacionesItems ON Cotizaciones.cotizacionID = CotizacionesItems.cotizacionID
                    INNER JOIN CamaraServicios ON CotizacionesItems.servicioID = CamaraServicios.servicioID
                    INNER JOIN CamaraServiciosCategorias ON CamaraServicios.categoriaID = CamaraServiciosCategorias.categoriaID
                    WHERE Cotizaciones.cotizacionCONSECUTIVO = ? ";
        return SicamDB::selectVariasFilas($sqlQuery, array($consecutivo));
    }
    
    public static function activar($consecutivo){
        $sqlQuery  = "UPDATE Cotizaciones SET cotizacionESTADO = ?
                    WHERE Cotizaciones.cotizacionCONSECUTIVO = ?";
        return SicamDB::actualizarFila($sqlQuery, array(self::ACTIVO,$consecutivo));
    }
    
    public static function idPorConsecutivo($consecutivo){
        $sqlQuery  = "SELECT * FROM Cotizaciones
                    WHERE Cotizaciones.cotizacionCONSECUTIVO = ?";
        return SicamDB::selectUnaFila($sqlQuery, array($consecutivo));
    }
    
    public static function porID($cotizacionID){
        $sqlQuery  = "SELECT * FROM Cotizaciones
                    WHERE Cotizaciones.cotizacionID = ?";
        return SicamDB::selectUnaFila($sqlQuery, array($cotizacionID));
    }
    
    public static function desactivar($consecutivo){
        /*$sqlQuery  = "UPDATE Cotizaciones SET cotizacionESTADO = ?
                    WHERE Cotizaciones.cotizacionID = ?";*/
        $sqlQuery  = "DELETE FROM Cotizaciones
                    WHERE Cotizaciones.cotizacionID = ?";
       // return SicamDB::selectUnaFila($sqlQuery, array(self::INACTIVO,$consecutivo));
        return SicamDB::actualizarFila($sqlQuery, array($consecutivo));
    }
    
    public static function documento($consecutivo){
        $sqlQuery  = "SELECT * FROM Cotizaciones 
                        INNER JOIN Documentos on Cotizaciones.documentoID = Documentos.documentoID 
                        WHERE Cotizaciones.cotizacionID = ?";
        return SicamDB::selectUnaFila($sqlQuery, array($consecutivo));
    }
    
    public static function registrar($personaID, $consecutivo,$fchVencimiento, $observaciones, $userCreo){
        $sqlQuery = "INSERT INTO Cotizaciones (".
        " personaID, cotizacionCONSECUTIVO, cotizacionFCHVENCIMIENTO, cotizacionOBSERVACIONES, cotizacionUSRCREO ) ".
        "VALUES (?, ?, ?, ?, ?)";
        return SicamDB::insertFila($sqlQuery, array($personaID, $consecutivo,$fchVencimiento, $observaciones, $userCreo));
    }
    
     public static function actualizar($CotizacionID,$fchVencimiento, $Observaciones, $usrModifica){
        $sqlQuery  = "UPDATE Cotizaciones SET cotizacionFCHVENCIMIENTO=?, cotizacionOBSERVACIONES = ?, cotizacionUSRMODIFICA = ?, cotizacionFCHMODIFICA = CURRENT_TIMESTAMP
                    WHERE Cotizaciones.cotizacionID = ?";
        return SicamDB::actualizarFila($sqlQuery, array($fchVencimiento, $Observaciones, $usrModifica, $CotizacionID));
    }
    
    
}
