




<?php
require_once('config/app/Query.php');

class CajaModel extends Query {
    private $id, $caja, $estado;
    public function __construct() {
        parent::__construct();
    }

    public function getCaja(string $table) {
        $sql = "SELECT * FROM $table";
        $data = $this->selectAll($sql);
        return $data;
       

    }
    public function registrarCaja(string $caja,){
        $this->caja = $caja;
        $verificar ="SELECT * FROM caja WHERE caja = '$this->caja'";
        $existe = $this->select($verificar);
        if (empty($existe)) {
         $sql = "INSERT INTO caja (caja) VALUES (?)";

        $datos = array($this->caja,);
        $data = $this->save($sql, $datos);
        if ($data == 1) {
            $res = "ok";
        } else {
            $res = "error";   
        }
       
        }else {
            $res ="existe";
        }
        return $res;
    }
    public function modificarCaja(string $caja,int $id){
        $this->caja = $caja;
        $this->id = $id;
        
        $sql = "UPDATE caja SET caja = ? WHERE id = ?";

        $datos = array($this->caja, $this->id,);
        $data = $this->save($sql, $datos);
        if ($data == 1) {
            $res = "modificado";
        } else {
            $res = "error";   
        }
        return $res;
    }

    
 

        public function editarCaja(int $id)
    {
        $sql = "SELECT * FROM caja WHERE id=$id";
        $data = $this->select($sql);
        return $data;
    }


    function accionCaja(int $estado, int $id){
        $this->id = $id;
        $this->estado = $estado;
        $sql = "UPDATE caja SET estado = ? WHERE id = ?";

        $datos = array($this->estado, $this->id);
        $data = $this->save($sql, $datos);
        return $data;

    }

    public function registrarArqueo(int $id_usuario, string $monto_inicial, string $fecha_apertura){
        $verificar ="SELECT * FROM arqueo_caja WHERE id_usuario = '$id_usuario' AND estado = 1 ";
        $existe = $this->select($verificar);
        if (empty($existe)) {
         $sql = "INSERT INTO arqueo_caja (id_usuario, monto_inicial, fecha_apertura) VALUES (?,?,?)";

        $datos = array($id_usuario, $monto_inicial, $fecha_apertura);
        $data = $this->save($sql, $datos);
        if ($data == 1) {
            $res = "ok";
        } else {
            $res = "error";   
        }
       
        }else {
            $res ="existe";
        }
        return $res;
    }

    public function getVentas(int $id_user){

        $sql = "SELECT total, SUM(total) AS total FROM ventas WHERE id_usuario = $id_user and estado = 1 AND apertura = 1";
        $data = $this->select($sql);
        return $data;
    
    }




            // consulta de la tabla totales
            public function compraTotaless(int $id_user){ 
                $sql = "SELECT SUM(total) AS total FROM compras_totales WHERE id_usuario = $id_user AND estado = 1 AND apertura = 1";
                $data = $this->select($sql);
                return $data;
            }
            
     
    public function actualizarCompraTotal(int $id){
        $sql = "UPDATE compras_totales SET apertura = ? WHERE id_usuario = ?";
       $datos = array(0, $id,);
       $data = $this->save($sql, $datos);
 }
    //va a servir para actualizar la tabla compra_totales y poner la apertura en 0 a tra vez del array







    public function getTotalVentas(int $id_user){

        $sql = "SELECT COUNT(total) AS total FROM ventas WHERE id_usuario = $id_user and estado = 1 AND apertura = 1";
        $data = $this->select($sql);
        return $data;

        
    }
    public function getMontoInicial(int $id_user){

        $sql = "SELECT id, monto_inicial FROM arqueo_caja WHERE id_usuario = $id_user and estado = 1";
        $data = $this->select($sql);
        return $data;

        
    }
    public function actualizarArqueo(string $final, string $cierre, string $ventas, string $general, string $comprasTotales, int $id){
        $sql = "UPDATE arqueo_caja SET monto_final = ?, fecha_cierre = ?, total_ventas = ?, monto_total = ?, compras_totales = ?, estado = ? WHERE id = ?";
        $datos = array($final, $cierre, $ventas, $general, $comprasTotales, 0, $id);
        $data = $this->save($sql, $datos);    
        if ($data == 1) {
            $res = "ok";
        } else {
            $res = "error";   
        }
        return $res;
    }
    

    public function actualizarApertura(int $id){
       
        $sql = "UPDATE ventas SET apertura = ? WHERE id_usuario = ?";

       $datos = array(0, $id,);
       $data = $this->save($sql, $datos);
   
 }

 public function verificarPermiso(int $id_user, string $nombre) {
    $sql = "SELECT p.id, p.permiso, d.id, d.id_usuario, d.id_permiso FROM permisos p INNER JOIN detalle_permisos d ON p.id = d.id_permiso WHERE d.id_usuario = $id_user AND p.permiso = '$nombre'";
    $data = $this->selectAll($sql);
    return $data;
    
}

public function registrarCierreArca($id_user, $cierre, $fecha) {
    $verificar = "SELECT * FROM arqueo_caja WHERE id_usuario = '$id_user' AND estado = 1";
    $existe = $this->select($verificar);
    
    if (!empty($existe)) { 
        $sql = "INSERT INTO cerrar_caja (id_usuario, monto_cierre, fecha_cierre) VALUES (?,?,?)";

        $datos = array($id_user, $cierre, $fecha);
        $data = $this->save($sql, $datos);
        
        if ($data == 1) {
            $res = "ok";
        } else {
            $res = "error";
        }
    } else {
        $res = "APERTURE CAJA";
    }
    
    return $res;
}



//nuevo arqueo




















}




















?>
