myadmin/vendor/action/clients/clients_save.php

149 lines
No EOL
8.4 KiB
PHP

<?php
/** Importação de classes */
use vendor\model\Companies;
use vendor\controller\Companies\CompaniesValidate;
try{
/** Verifica se o token de acesso é válido */
if($Main->verifyToken()){
/** Instânciamento de classes */
$Companies = new Companies();
$CompaniesValidate = new CompaniesValidate();
/** Parametros de entrada */
$type = isset($_POST['type']) ? (string)filter_input(INPUT_POST, 'type', FILTER_SANITIZE_SPECIAL_CHARS) : '';
$student = isset($_POST['student']) ? (string)filter_input(INPUT_POST, 'student', FILTER_SANITIZE_SPECIAL_CHARS) : '';
$companiesId = isset($_POST['companies_id']) ? (int)filter_input(INPUT_POST, 'companies_id', FILTER_SANITIZE_SPECIAL_CHARS) : 0;
$clientName = isset($_POST['client_name']) ? (string)filter_input(INPUT_POST, 'client_name', FILTER_SANITIZE_SPECIAL_CHARS) : '';
$fantasyName = isset($_POST['fantasy_name']) ? (string)filter_input(INPUT_POST, 'fantasy_name', FILTER_SANITIZE_SPECIAL_CHARS) : '';
$document = isset($_POST['document']) ? (string)filter_input(INPUT_POST, 'document', FILTER_SANITIZE_SPECIAL_CHARS) : '';
$zipCode = isset($_POST['zip_code']) ? (string)filter_input(INPUT_POST, 'zip_code', FILTER_SANITIZE_SPECIAL_CHARS) : '';
$adress = isset($_POST['adress']) ? (string)filter_input(INPUT_POST, 'adress', FILTER_SANITIZE_SPECIAL_CHARS) : '';
$number = isset($_POST['number']) ? (string)filter_input(INPUT_POST, 'number', FILTER_SANITIZE_SPECIAL_CHARS) : '';
$complement = isset($_POST['complement']) ? (string)filter_input(INPUT_POST, 'complement', FILTER_SANITIZE_SPECIAL_CHARS) : '';
$district = isset($_POST['district']) ? (string)filter_input(INPUT_POST, 'district', FILTER_SANITIZE_SPECIAL_CHARS) : '';
$city = isset($_POST['city']) ? (string)filter_input(INPUT_POST, 'city', FILTER_SANITIZE_SPECIAL_CHARS) : '';
$stateInitials = isset($_POST['state_initials']) ? (string)filter_input(INPUT_POST, 'state_initials', FILTER_SANITIZE_SPECIAL_CHARS) : '';
$active = isset($_POST['active']) ? (string)filter_input(INPUT_POST, 'active', FILTER_SANITIZE_SPECIAL_CHARS) : '';
$reference = isset($_POST['reference']) ? (string)filter_input(INPUT_POST, 'reference', FILTER_SANITIZE_SPECIAL_CHARS) : '';
$responsible = isset($_POST['responsible']) ? (string)filter_input(INPUT_POST, 'responsible', FILTER_SANITIZE_SPECIAL_CHARS) : '';
$responsibleDocument = isset($_POST['responsible_document']) ? (string)filter_input(INPUT_POST, 'responsible_document', FILTER_SANITIZE_SPECIAL_CHARS) : '';
$email = isset($_POST['email']) ? (string)filter_input(INPUT_POST, 'email', FILTER_SANITIZE_SPECIAL_CHARS) : '';
$contractDate = isset($_POST['contract_date']) ? (string)filter_input(INPUT_POST, 'contract_date', FILTER_SANITIZE_SPECIAL_CHARS) : '';
$computers = isset($_POST['computers']) ? (int)filter_input(INPUT_POST, 'computers', FILTER_SANITIZE_NUMBER_INT) : '';
$servers = isset($_POST['servers']) ? (int)filter_input(INPUT_POST, 'servers', FILTER_SANITIZE_NUMBER_INT) : '';
/** Validando os campos de entrada */
$CompaniesValidate->setType($type);
$CompaniesValidate->setStudent($student);
$CompaniesValidate->setCompaniesId($CompaniesId);
$CompaniesValidate->setClientName($clientName);
$CompaniesValidate->setFantasyName($fantasyName);
$CompaniesValidate->setDocument($document);
$CompaniesValidate->setZipCode($zipCode);
$CompaniesValidate->setAdress($adress);
$CompaniesValidate->setNumber($number);
$CompaniesValidate->setComplement($complement);
$CompaniesValidate->setDistrict($district);
$CompaniesValidate->setCity($city);
$CompaniesValidate->setStateInitials($stateInitials);
$CompaniesValidate->setActive($active);
$CompaniesValidate->setReference($reference);
$CompaniesValidate->setResponsible($responsible);
$CompaniesValidate->setResponsibleDocument($responsibleDocument);
$CompaniesValidate->setEmail($email);
$CompaniesValidate->setContractDate($contractDate);
$CompaniesValidate->setComputers($computers);
$CompaniesValidate->setServers($servers);
/** Verifica se não existem erros a serem informados,
* caso não haja erro(s) salvo os dados do cliente ou
* efetua o cadastro de um novo*/
/** Verifico a existência de erros */
if (!empty($CompaniesValidate->getErrors())) {
/** Informo */
throw new InvalidArgumentException($CompaniesValidate->getErrors(), 0);
} else {
/** Salva as alterações ou cadastra um novo usuário */
if($Companies->Save($CompaniesValidate->getCompaniesId(),
$CompaniesValidate->getClientName(),
$CompaniesValidate->getFantasyName(),
$CompaniesValidate->getDocument(),
$CompaniesValidate->getZipCode(),
$CompaniesValidate->getAdress(),
$CompaniesValidate->getNumber(),
$CompaniesValidate->getComplement(),
$CompaniesValidate->getDistrict(),
$CompaniesValidate->getCity(),
$CompaniesValidate->getStateInitials(),
$CompaniesValidate->getActive(),
$CompaniesValidate->getType(),
$CompaniesValidate->getStudent(),
$CompaniesValidate->getResponsible(),
$CompaniesValidate->getEmail(),
'',
$CompaniesValidate->getReference(),
$CompaniesValidate->getResponsibleDocument(),
$CompaniesValidate->getContractDate(),
$CompaniesValidate->getComputers(),
$CompaniesValidate->getServers())){
/** Informa o resultado positivo **/
$result = [
'cod' => 200,
'title' => 'Atenção',
'message' => '<div class="alert alert-success" role="alert">' . ($CompaniesValidate->getCompaniesId() > 0 ? 'Cliente atualizado com sucesso!' : 'Cliente cadastrado com sucesso!') .'</div>',
];
/** Envio **/
echo json_encode($result);
/** Paro o procedimento **/
exit;
}else{//Caso ocorra algum erro, informo
throw new InvalidArgumentException(($CompaniesValidate->getCompaniesId() > 0 ? 'Não foi possível atualizar o cadastro da empresa' : 'Não foi possível cadastrar a nova empresa'), 0);
}
}
/** Caso o token de acesso seja inválido, informo */
}else{
/** Informa que o usuário precisa efetuar autenticação junto ao sistema */
$authenticate = true;
/** Informo */
throw new InvalidArgumentException('Sua sessão expirou é necessário efetuar nova autenticação junto ao sistema', 0);
}
}catch(Exception $exception){
/** Preparo o formulario para retorno **/
$result = [
'cod' => 0,
'message' => '<div class="alert alert-danger" role="alert">'.$exception->getMessage().'</div>',
'title' => 'Atenção',
'type' => 'exception',
'authenticate' => $authenticate
];
/** Envio **/
echo json_encode($result);
/** Paro o procedimento **/
exit;
}