<?php

namespace App;

use App\Custom\Misc;
use Request;

class ContraparteCalls
{
    /**
     * Cuit de la contraparte
     * a consultar
     * @var string
     */
    private $cuit;
    
    /**
     * Cuil de un empleado de la contraparte
     * a consultar, si la contrap. fuese empleador.
     * @var string
     */
    private $cuil;

    /**
     * Maxima cantidad de intentos a
     * consultar por proceso de CUIT
     * @var int
     */
    private $max_intentos;

    /**
     * Create a new class instance.
     */
    public function __construct($cuit, $cuil = null)
    {
        //
        $this->setCuit($cuit);
        $this->setCuil($cuil);
        $this->max_intentos = 5;
    }

    /**
     * @access public
     * @param mixed $cuit el cuit de la contraparte
     */
    public function setCuit($cuit) :void{
        $this->cuit = $cuit;
    }

    /**
     * @access public
     * @param mixed $cuil el cuil del empleado
     */
    public function setCuil($cuil) :void{
        $this->cuil = $cuil;
    }

    /**
     * Metodo que enriquece la constancia de inscripción
     * para un cuit
     * @access public
     */
    public function enriquecerConstancia() :void{
        $params = '?cuit=' . $this->cuit;
        $i = 0;
        $consulto = false;
        while( !$consulto && $i < $this->max_intentos ){
            $result = Misc::CURLCall(env("FISCALES_CONSTANCIA").$params,null,'GET',60);
            if ( $result !== null ){
                $res_json = json_decode($result);
                if ( isset($res_json->error) && $res_json->error === 0 ){
                    $consulto = true;
                }
            }
            $i++;
        }
    }

    /**
     * Metodo que enriquece los aportes para un cuit
     * @access public
     */
    public function enriquecerAportes() :void{
        $params = '?cuit=' . $this->cuit;

        if ( $this->cuil ){
            $params = "?cuit=$this->cuil";
        }

        $i = 0;
        $consulto = false;
        while( !$consulto && $i < $this->max_intentos ){
            $result = Misc::CURLCall(env("FISCALES_MISAPORTES").$params,null,'GET',60);
            if ( $result !== null ){
                $res_json = json_decode($result);
                if ( isset($res_json->error) && $res_json->error === 0 ){
                    $consulto = true;
                }
            }
            $i++;
        }
    }
}