MOON
Server: Apache
System: Linux server1.studioinfinity.com.br 2.6.32-954.3.5.lve1.4.90.el6.x86_64 #1 SMP Tue Feb 21 12:26:30 UTC 2023 x86_64
User: artinside (517)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/artinside/sites.artinside.com.br/mainpro/source/App/Admin/Enrolments.php
<?php

namespace Source\App\Admin;


use Source\Core\Session;
use Source\Models\Activity;
use Source\Models\Auth;
use Source\Models\Client;
use Source\Models\CourseDocuments;
use Source\Models\Enrolment;
use Source\Models\Files;
use Source\Models\Newsletter;
use Source\Support\Pager;
use Source\Support\Upload;

/**
 * Class Enrolments
 * @package Source\App\Admin
 */
class Enrolments extends Admin
{
    /**
     * Order constructor.
     */
    public function __construct($router)
    {
        parent::__construct();
        $this->view->addData("router", $router);
    }


    /**
     * @param array|null $data
     */
    public function invoice(?array $data): void
    {


        $enrolment = (new Enrolment())->findById((int)$data['order_id']);

        $percentual = $this->verifyPercentual($enrolment->course_id, $enrolment->id);
        if ($percentual >= 100 and $enrolment->document_complete != 1) {
            $enrolment->document_complete = 1;
            $enrolment->save();
        }

        if (!$enrolment) {
            redirect("admin/error/404");
        }
        $origin = 'enrolment';
        $activity = (new Activity())->find("item_id = :itemid AND origin = :origin", "itemid={$data['order_id']}&origin={$origin}");

        $head = $this->seo->render(
            CONF_SITE_NAME . " | Pedido",
            CONF_SITE_DESC,
            url("/admin"),
            url("/admin/assets/images/image.jpg"),
            false
        );

        echo $this->view->render("widgets/enrolment/invoice", [
            "app" => "enrolment/invoice",
            "head" => $head,
            "enrolment" => $enrolment,
            "activity" => $activity->order("id DESC")->fetch(true),
            "documents" => (new CourseDocuments())->find("course_id = :cid", "cid={$enrolment->course_id}")->fetch(true),
            "percentual" => $percentual
        ]);
    }


    /**
     * @param array|null $data
     */
    public function documentSent(?array $data): void
    {

        if (isset($data) and $data["action"] == "create") {


            if (!isset($_FILES) or empty($_FILES)) {
                $json["message"] = $this->message->info("Selecionar um arquivo")->flash();
                $json["reload"] = true;
                echo json_encode($json);
                return;
            }
            if (!empty($_FILES["file"])) {
                if ($_FILES["file"]["size"] / 1000 > 10500) {
                    $json["message"] = $this->message->warning("Tamanho máximo permitido 10MB favor enviar um arquivo menor")->flash();
                    $json["reload"] = true;
                    echo json_encode($json);
                    return;
                }

                $verify = (new Files())->find("enrolment_id = :eid AND document_id = :did", "eid={$data['enrolment_id']}&did={$data['document_id']}");
                $doc = $_FILES["file"];
                $upload = new Upload();
                $title = "arquivo-" . $data["document_id"] . "-" . $data["enrolment_id"];
                $send = $upload->file($doc, $title);

                if (!$send) {
                    $json["message"] = $upload->message()->render();
                    echo json_encode($json);
                    return;
                }
                if ($verify->count() != 0) {
                    $id = $verify->fetch()->id;
                    $files = (new Files())->findById($id);

                    if ($files->file && file_exists(__DIR__ . "/../../../" . CONF_UPLOAD_DIR . "/{$files->file}")) {
                        unlink(__DIR__ . "/../../../" . CONF_UPLOAD_DIR . "/{$files->file}");
                    }
                } else {
                    $files = new Files();
                }


                $files->document_id = $data["document_id"];
                $files->enrolment_id = $data["enrolment_id"];

                $files->file = $send;

                if (!$files->save()) {
                    $json["message"] = $files->message()->render();
                    echo json_encode($json);
                    return;
                }
            }

            $json["message"] = $this->message->success("Arquivos Enviado com sucesso")->flash();
            $json["reload"] = true;

            echo json_encode($json);
            return;
        }

        if (isset($data) and $data["action"] == "delete") {

            $files = (new Files())->findById($data["id"]);
            if (!$files) {
                $json["message"] = $this->message->error("Você tentou deletar um arquivo que não existe")->flash();
                $json["reload"] = true;

                echo json_encode($json);
                return;
            }
            if ($files->file && file_exists(__DIR__ . "/../../../" . CONF_UPLOAD_DIR . "/{$files->file}")) {
                unlink(__DIR__ . "/../../../" . CONF_UPLOAD_DIR . "/{$files->file}");
            }
            $files->destroy();

            $json["message"] = $this->message->success("Arquivo deletado com sucesso")->flash();
            $json["reload"] = true;

            echo json_encode($json);
            return;
        }

    }


    /**
     * @param array|null $data
     */
    public function newsletter(?array $data): void
    {


        $newsletter = (new Newsletter())->findById((int)$data['order_id']);
        if (!$newsletter) {
            redirect("admin/error/404");
        }
        $origin = 'newsletter';
        $activity = (new Activity())->find("item_id = :itemid AND origin = :origin", "itemid={$data['order_id']}&origin={$origin}");


        $head = $this->seo->render(
            CONF_SITE_NAME . " | Inscrições",
            CONF_SITE_DESC,
            url("/admin"),
            url("/admin/assets/images/image.jpg"),
            false
        );

        echo $this->view->render("widgets/enrolment/newsletter", [
            "app" => "enrolment/newsletter",
            "head" => $head,
            "newsletter" => $newsletter,
            "activity" => $activity->fetch(true)
        ]);
    }

    public function enrolment(array $data): void
    {

        //STATUS
        if (isset($data) and $data["action"] != null) {
            $data = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRIPPED);

            $cpf = str_replace([" ", "  ", ".", "/", "-"], "", $data["document"]);
            if (!is_email($data["email"])) {
                $json["message"] = $this->message->warning("Formato de email inválido, digite outro email")->render();
                echo json_encode($json);
                return;
            }


            $clientVerify = (new Client())->find("(email = :email OR document = :document)  AND (document != '')  AND id != :id", "email={$data['email']}&document={$cpf}&id={$data['client_id']}");
            if ($clientVerify->count()) {
                $json["message"] = $this->message->error("CPF ou email já cadastrado em outro cliente")->render();
                echo json_encode($json);
                return;
            }

            if ($data["status"] == 6 or $data["status"] == 5 or $data["status"] == 7 or $data["status"] == 2) {
                $client = (new Client())->findById($data["client_id"]);

                $client->name = $data["name"];
                $client->document = str_replace([" ", "  ", ".", "/", "-"], "", $data["document"]);
                $client->document2 = $data["document2"];
                $client->email = $data["email"];
                $client->phone = $data["phone"];
                $client->address = $data["address"];
                $client->zipcode = $data["zipcode"];
                $client->city = $data["city"];
                $client->state = $data["state"];
                $client->neighborhood = $data["neighborhood"];
                $client->complement = $data["complement"];
                if (!$client->save()) {
                    $json["message"] = $client->message()->render();
                    echo json_encode($json);
                    return;
                }


                $enrolment = (new Enrolment())->findById($data["id"]);
                $enrolment->status = $data["status"];
                $enrolment->document_complete = 1;
                if (!$enrolment->save()) {
                    $json["message"] = $enrolment->message()->render();
                    echo json_encode($json);
                    return;
                }
                $json["message"] = $this->message->success("Cadastro alterado com Sucesso")->flash();
                $json["reload"] = true;

                echo json_encode($json);
                return;
            } else {

                if (
                    empty($data["name"]) or
                    empty($data["document"]) or
                    empty($data["document2"]) or
                    empty($data["email"]) or
                    empty($data["phone"]) or
                    empty($data["address"]) or
                    empty($data["city"]) or
                    empty($data["zipcode"]) or
                    empty($data["state"])

                ) {
                    $json["message"] = $this->message->info("Para alterar o status ou cliente preencha todos dados obrigatórios com **")->render();
                    echo json_encode($json);
                    return;

                }


                if (!is_cpf($data["document"])) {
                    $json["message"] = $this->message->warning("CPF Inválido, digitar CPF Válido")->render();
                    echo json_encode($json);
                    return;
                }

                $client = (new Client())->findById($data["client_id"]);
                $client->name = $data["name"];
                $client->document = str_replace([" ", "  ", ".", "/", "-"], "", $data["document"]);
                $client->document2 = $data["document2"];
                $client->email = $data["email"];
                $client->phone = $data["phone"];
                $client->address = $data["address"];
                $client->zipcode = $data["zipcode"];
                $client->city = $data["city"];
                $client->state = $data["state"];
                $client->neighborhood = $data["neighborhood"];
                $client->complement = $data["complement"];
                if (!$client->save()) {
                    $json["message"] = $client->message()->render();
                    echo json_encode($json);
                    return;
                }

                $enrolment = (new Enrolment())->findById($data["id"]);
                $enrolment->status = $data["status"];
                $enrolment->document_complete = $data["document_complete"];
                if (!$enrolment->save()) {
                    $json["message"] = $enrolment->message()->render();
                    echo json_encode($json);
                    return;
                }
                $json["message"] = $this->message->success("Matrícula alterada com Sucesso")->flash();
                $json["reload"] = true;

                echo json_encode($json);
                return;
            }

        }

    }

    public function inscription(array $data): void
    {
        if (isset($data) and $data["action"] != null) {
            $data = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRIPPED);

            $newsletter = (new Newsletter())->findById($data["id"]);
            $newsletter->status = $data["status"];

            if (!$newsletter->save()) {
                $json["message"] = $newsletter->message()->render();
                echo json_encode($json);
                return;
            }

            $json["message"] = $this->message->success("Status alterado com Sucesso")->render();
            $json["redirect"] = url("/admin/dash/home");

            echo json_encode($json);
            return;
        }

    }

    public function activity(array $data): void
    {
        if (isset($data) and $data["action"] = "enrolment") {
            $data = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRIPPED);

            $activity = new Activity();
            $activity->activity = $data["activity"];
            $activity->origin = $data["action"];
            $activity->item_id = $data["item_id"];
            $activity->user_id = Auth::user()->id;
            $activity->user_name = Auth::user()->fullName();

            if (!$activity->save()) {
                $json["message"] = $activity->message()->render();
                echo json_encode($json);
                return;
            }

            $json["message"] = $this->message->success("Atividade incluída com Sucesso")->render();
            $json["reload"] = true;

            echo json_encode($json);
            return;
        }

    }

    /**
     * @param array|null $data
     */
    public function enrolments(?array $data): void
    {

        //search redirect
        if (!empty($data["s"])) {
            $s = str_search($data["s"]);
            echo json_encode(["redirect" => url("/admin/enrolments/{$data["t"]}/{$s}")]);
            return;
        }
        if (isset($data["s"]) and $data["s"] == "") {
            echo json_encode(["redirect" => url("/admin/enrolments/all/all")]);
            return;
        }

        if (isset($_SESSION["order-date"]) and $_SESSION["order-date"]->starting != "" and $_SESSION["order-date"]->final != "" and $data["type"] == "all") {
            $dateQuery = "created_at BETWEEN '{$_SESSION["order-date"]->starting} 00:00:01' AND '{$_SESSION["order-date"]->final} 23:59:59'";
            $dateQueryS = "AND e.created_at BETWEEN '{$_SESSION["order-date"]->starting} 00:00:01' AND '{$_SESSION["order-date"]->final} 23:59:59'";
        } elseif (isset($_SESSION["order-date"]) and $_SESSION["order-date"]->starting != "" and $_SESSION["order-date"]->final != "") {
            $dateQuery = "AND created_at BETWEEN '{$_SESSION["order-date"]->starting} 00:00:01' AND '{$_SESSION["order-date"]->final} 23:59:59'";
            $dateQueryS = "AND e.created_at BETWEEN '{$_SESSION["order-date"]->starting} 00:00:01' AND '{$_SESSION["order-date"]->final} 23:59:59'";
        } else {
            $dateQuery = "";
        }

        $order = "created_at DESC";
        $search = null;
        $query = $dateQuery;
        $queryS = $dateQueryS;
        $title = "Todas Matrículas";

        if ($data["type"] == "waiting") {
            $query = "(status = 0) {$dateQuery}";
            $queryS = "AND (e.status  = 0) {$dateQueryS}";
            $title = "Aguardando Cadastro";
        }

        if ($data["type"] == "current") {
            $query = "(status = 2) {$dateQuery}";
            $queryS = "AND (e.status  = 2) {$dateQueryS}";
            $title = "Em Atendimento";
        }

        if ($data["type"] == "no-interest") {
            $query = "(status = 7) {$dateQuery}";
            $queryS = "AND (e.status  = 7) {$dateQueryS}";
            $title = "Sem Interesse";
        }

        if ($data["type"] == "inscript") {
            $query = "(status = 5) {$dateQuery}";
            $queryS = "AND (e.status  = 5) {$dateQueryS}";
            $title = "Inscrito, entrar em contato";
        }

        if ($data["type"] == "confirmed") {
            $query = "(status = 1) {$dateQuery}";
            $queryS = "AND (e.status = 1) {$dateQueryS}";
            $title = "Matrícula Efetuada";
        }

        if ($data["type"] == "canceled") {
            $query = "(status = 6) {$dateQuery}";
            $queryS = "AND (e.status  = 6) {$dateQueryS}";
            $title = "Matrícula Cancelada";
        }

        $enrolment = (new Enrolment())->find($query);

        if (!empty($data["search"]) && str_search($data["search"]) != "all") {
            $search = str_search($data["search"]);

            $enrolment = (new Enrolment())->fullSelect("SELECT e.*, cl.name, c.title FROM enrolments e
                    INNER JOIN clients cl 
                    INNER JOIN course c
                    WHERE e.client_id = cl.id
                    AND e.course_id = c.id
                     AND (e.id LIKE '%{$search}%' OR cl.name LIKE '%{$search}%' OR c.title LIKE '%{$search}%') {$queryS} ");
            if (!$enrolment->count()) {
                $this->message->info("Sua pesquisa não retornou resultados")->flash();
                redirect("admin/enrolments/{$data["type"]}/all/1");
            }
        }


        $all = ($search ?? "all");
        $pager = new Pager(url("/admin/enrolments/{$data["type"]}/{$all}/"));
        $pager->pager($enrolment->count(), 20, (!empty($data["page"]) ? $data["page"] : 1));

        $head = $this->seo->render(
            CONF_SITE_NAME . " | Matrículas",
            CONF_SITE_DESC,
            url("/admin"),
            url("/admin/assets/images/image.jpg"),
            false
        );

        echo $this->view->render("widgets/enrolment/enrolments", [
            "app" => "order/order",
            "head" => $head,
            "enrolment" => $enrolment->order($order)->limit($pager->limit())->offset($pager->offset())->fetch(true),
            "paginator" => $pager->render("pagination justify-content-center"),
            "search" => $search,
            "title" => $title
        ]);
    }


    /**
     * @param array|null $data
     */
    public function csvEnrolments(?array $data): void
    {

        $period = "TUDO";
        if (isset($_SESSION["order-date"]) and $_SESSION["order-date"]->starting != "" and $_SESSION["order-date"]->final != "" and $data["type"] == "all") {
            $dateQuery = "created_at BETWEEN '{$_SESSION["order-date"]->starting} 00:00:01' AND '{$_SESSION["order-date"]->final} 23:59:59'";
            $dateQueryS = "AND e.created_at BETWEEN '{$_SESSION["order-date"]->starting} 00:00:01' AND '{$_SESSION["order-date"]->final} 23:59:59'";
            $period = date_fmt($_SESSION["order-date"]->starting, "d/m/Y") . " a " . date_fmt($_SESSION["order-date"]->final, "d/m/Y");
        } elseif (isset($_SESSION["order-date"]) and $_SESSION["order-date"]->starting != "" and $_SESSION["order-date"]->final != "") {
            $dateQuery = "AND created_at BETWEEN '{$_SESSION["order-date"]->starting} 00:00:01' AND '{$_SESSION["order-date"]->final} 23:59:59'";
            $dateQueryS = "AND e.created_at BETWEEN '{$_SESSION["order-date"]->starting} 00:00:01' AND '{$_SESSION["order-date"]->final} 23:59:59'";
            $period = date_fmt($_SESSION["order-date"]->starting, "d/m/Y") . " a " . date_fmt($_SESSION["order-date"]->final, "d/m/Y");
        } else {
            $dateQuery = "";
        }
        $order = "created_at DESC";
        $search = null;
        $query = $dateQuery;
        $queryS = $dateQueryS;
        $title = "Todas Matrículas";

        if ($data["type"] == "waiting") {
            $query = "(status = 0) {$dateQuery}";
            $queryS = "AND (e.status  = 0) {$dateQueryS}";
            $title = "Aguardando Cadastro";
        }

        if ($data["type"] == "current") {
            $query = "(status = 2) {$dateQuery}";
            $queryS = "AND (e.status  = 2) {$dateQueryS}";
            $title = "Em Atendimento";
        }

        if ($data["type"] == "no-interest") {
            $query = "(status = 7) {$dateQuery}";
            $queryS = "AND (e.status  = 7) {$dateQueryS}";
            $title = "Sem Interesse";
        }

        if ($data["type"] == "inscript") {
            $query = "(status = 5) {$dateQuery}";
            $queryS = "AND (e.status  = 5) {$dateQueryS}";
            $title = "Inscrito, entrar em contato";
        }

        if ($data["type"] == "confirmed") {
            $query = "(status = 1) {$dateQuery}";
            $queryS = "AND (e.status = 1) {$dateQueryS}";
            $title = "Matrícula Efetuada";
        }

        if ($data["type"] == "canceled") {
            $query = "(status = 6) {$dateQuery}";
            $queryS = "AND (e.status  = 6) {$dateQueryS}";
            $title = "Matrícula Cancelada";
        }


        $enrolment = (new Enrolment())->find($query);

        if (!empty($data["search"]) && str_search($data["search"]) != "all") {
            $search = str_search($data["search"]);
            $enrolment = (new Enrolment())->fullSelect("SELECT e.*, cl.name, c.title FROM enrolments e
                    INNER JOIN clients cl 
                    INNER JOIN course c
                    WHERE e.client_id = cl.id
                    AND e.course_id = c.id
                     AND (e.id LIKE '%{$search}%' OR cl.name LIKE '%{$search}%' OR c.title LIKE '%{$search}%') {$queryS} ");
        }

        if ($enrolment->count() < 1) {
            $json["message"] = $this->message->warning("Não existe itens para relatório")->render();
            echo json_encode($json);
            return;
        } else {
            $name = "relatorio-matriculas";

            $fp = fopen($name . '.csv', 'w');
            fputcsv($fp, array(
                "Período: {$period}",
                "Busca: {$search}",
                "Tipo: {$title}",
                "",
                "",
                "",

            ));
            fputcsv($fp, array());
            fputcsv($fp, array(
                'N. inscrição',
                'Data',
                'Email',
                'Cliente',
                'Curso',
                'Status',

            ));
            foreach ($enrolment->fetch(true) as $enrolment) {
                fputcsv($fp, array(
                    $enrolment->id,
                    $enrolment->created_at,
                    $enrolment->client()->email,
                    $enrolment->client()->name,
                    $enrolment->course()->title,
                    $this->enrolmentStatus($enrolment->status),
                ));
            }
            fclose($fp);
            $this->message->success("Relatório gerado com sucesso")->flash();
            echo json_encode(["redirect" => url($name . ".csv")]);
            return;
        }
    }

    public function enrolmentStatus(int $status) : ?string
    {
        switch ($status) :
            case 0:
                $res = "Pré-Matriculado";
                break;
            case 1:
                $res = "Matriculado";
                break;
            case 2:
                $res = "Em Atendimento";
                break;
            case 5:
                $res = "Inscrito";
                break;
            case 6:
                $res = "Cancelado";
                break;
            case 7:
                $res = "Sem Interesse";
                break;
            default:
                $res = "indefinido";
        endswitch;

        return $res;
    }
    /**
     * @param array|null $data
     */
    public function inscriptions(?array $data): void
    {

        //search redirect
        if (!empty($data["s"])) {
            $s = str_search($data["s"]);
            echo json_encode(["redirect" => url("/admin/inscriptions/all/{$s}")]);
            return;
        }
        if (isset($data["s"]) and $data["s"] == "") {
            echo json_encode(["redirect" => url("/admin/inscriptions/all/all")]);
            return;
        }

        if (isset($_SESSION["order-date"]) and $_SESSION["order-date"]->starting != "" and $_SESSION["order-date"]->final != "") {
            $dateQuery = "AND created_at BETWEEN '{$_SESSION["order-date"]->starting} 00:00:01' AND '{$_SESSION["order-date"]->final} 23:59:59'";
            $dateQueryS = "AND created_at BETWEEN '{$_SESSION["order-date"]->starting} 00:00:01' AND '{$_SESSION["order-date"]->final} 23:59:59'";
        } else {
            $dateQuery = "";
        }

        $order = "created_at DESC";
        $search = null;
        $query = $dateQuery;
        $title = "Todas Inscrições";
        if ($data["type"] == "all") {
            $query = "(landing != '') {$dateQuery}";
            $title = "Aguardando Atendimento";
        }

        if ($data["type"] == "waiting") {
            $query = "(status = 0 AND landing != '') {$dateQuery}";
            $title = "Aguardando Atendimento";
        }

        if ($data["type"] == "confirmed") {
            $query = "(status = 1 AND landing != '') {$dateQuery}";
            $title = "Atendimento Finalizado";
        }

        if ($data["type"] == "current") {
            $query = "(status = 2 AND landing != '') {$dateQuery}";
            $title = "Em Atendimento";
        }

        $newsletter = (new Newsletter())->find($query);

        if (!empty($data["search"]) && str_search($data["search"]) != "all") {
            $search = str_search($data["search"]);


            $newsletter = (new Newsletter())->find("landing != '' AND (name LIKE '%{$search}%' OR email LIKE '%{$search}%') {$dateQueryS}");
            if (!$newsletter->count()) {
                $this->message->info("Sua pesquisa não retornou resultados")->flash();
                redirect("admin/inscriptions/{$data["type"]}/all/1");
            }
        }


        $all = ($search ?? "all");
        $pager = new Pager(url("/admin/inscriptions/{$data["type"]}/{$all}/"));
        $pager->pager($newsletter->count(), 20, (!empty($data["page"]) ? $data["page"] : 1));

        $head = $this->seo->render(
            CONF_SITE_NAME . " | Inscrições",
            CONF_SITE_DESC,
            url("/admin"),
            url("/admin/assets/images/image.jpg"),
            false
        );

        echo $this->view->render("widgets/enrolment/inscriptions", [
            "app" => "inscriptions/inscriptions",
            "head" => $head,
            "newsletter" => $newsletter->order($order)->limit($pager->limit())->offset($pager->offset())->fetch(true),
            "paginator" => $pager->render("pagination justify-content-center"),
            "search" => $search,
            "title" => $title
        ]);
    }

    public function verifyPercentual(int $courseId, int $enrolmentId)
    {

        $countDocuments = (new CourseDocuments())->find("course_id = {$courseId}");
        $countFiles = (new Files())->find("enrolment_id = {$enrolmentId}");

        if ($countDocuments->count() == 0 and $countDocuments->count() == 0) {
            return 0;
        } else {
            $percentual = ($countFiles->count() / $countDocuments->count()) * 100;
            return $percentual;
        }


    }

    public function relatory(array $data): void
    {

        if ($data["startingDate"] != "" and validateDate($data["startingDate"], "d/m/Y") != true) {
            unset($_SESSION["order-date"]);
            $json["message"] = $this->message->error("Data Inicial Inválida")->flash();
            $json["reload"] = true;
            echo json_encode($json);
            return;
        }
        if ($data["finalDate"] != "" and validateDate($data["finalDate"], "d/m/Y") != true) {
            unset($_SESSION["order-date"]);
            $json["message"] = $this->message->error("Data Final Inválida")->flash();
            $json["reload"] = true;
            echo json_encode($json);
            return;
        }

        if ($data["startingDate"] == "" or $data["finalDate"] == "") {
            unset($_SESSION["order-date"]);
            $json["reload"] = true;
            echo json_encode($json);
            return;
        }


        if (isset($data) and $data["startingDate"] != "" and $data["finalDate"] != "") {
            $session = new Session();
            $session->set("order-date",
                [
                    "starting" => date_fmt_back($data["startingDate"]),
                    "final" => date_fmt_back($data["finalDate"])
                ]);

            $json["reload"] = true;
            echo json_encode($json);
            return;
        }


    }

}