/** * * usar: login/status * e esperar o resultado em json, se * {success: true} é porque está logado :) * e vice versa */ public function status() { $ReturnResult = new ReturnResultVO(); $ReturnResult->success = UserClient::getId() > 0; echo $ReturnResult->toJson(); exit; }
/** * envie por post uma array de ids de files, só os ids * file/get_ziped_files */ public function getZipedFiles() { if (!UserClient::getId() > 0) { //nao tem permissao Navigation::redirect("405"); exit; } $array_file_ids = DataHandler::getValueByArrayIndex($_POST, "file_id"); //Debug::print_r($_REQUEST); $array_file_vo = array(); if (is_array($array_file_ids)) { foreach ($array_file_ids as $id) { $FileVO = new FileVO(); $Result = $FileVO->setId($id, TRUE); if ($Result->success == TRUE) { $array_file_vo[] = $FileVO; } } } else { //erro, não é uma array, verifica se pelo menos é 1 único id $id = DataHandler::forceInt($array_file_ids); if ($id > 0) { //é um id único $FileVO = new FileVO(); $Result = $FileVO->setId($id, TRUE); if ($Result->success == TRUE) { $array_file_vo[] = $FileVO; } } else { //erro mesmo, esse dado é zoado, estoura excessão throw new Exception("No ids sended", 404); exit; } } //a pasta zip precisa existir DataHandler::createFolderIfNotExist("upload/zip/"); //verifica o nome do arquivo baseado nos ids enviados conforme regra inventada agora $zip_name = "upload/zip/" . md5(implode("|", $array_file_ids)); DataHandler::createFolderIfNotExist($zip_name); $zip_name = $zip_name . "/teto.zip"; if (!file_exists($zip_name)) { //echo Debug::li($zip_name);exit(); $Zip = new ZipArchive(); $Zip->open($zip_name, ZipArchive::CREATE); foreach ($array_file_vo as $FileVO) { $url = $FileVO->getUrl(); $array = explode("/", $url); $file = $array[count($array) - 1]; $Zip->addFile($url, $file); } $Zip->close(); } header("Location: " . Config::getRootPath($zip_name)); exit; }
/** * baixar o zip do mal * ?products={product_id:N,gallery:true,dimensions:true,files:[]}|{product_id:N,gallery:true,dimensions:true,files:[]} */ public function getZip() { if (!UserClient::getId() > 0) { //nao tem permissao Navigation::redirect("405"); exit; } set_time_limit(0); //tratando variaveis enviadas $files_id = DataHandler::getValueByArrayIndex($_POST, "file_id"); $imagens = DataHandler::getValueByArrayIndex($_POST, "imagens"); $pdf = DataHandler::getValueByArrayIndex($_POST, "pdf"); //precisa saber quais sao os produtos envolvidos $array_products_id = array(); $array_files = array(); if ($files_id) { foreach ($files_id as $file_id) { $temp_array = explode("_", $file_id); $product_id = $temp_array[0]; if (!in_array($product_id, $array_products_id)) { $array_products_id[] = $product_id; $array_files[] = $product_id; } } } if ($imagens) { foreach ($imagens as $product_id) { if (!in_array($product_id, $array_products_id)) { $array_products_id[] = $product_id; } } } if ($pdf) { foreach ($pdf as $product_id) { if (!in_array($product_id, $array_products_id)) { $array_products_id[] = $product_id; } } } $ReturnResultVO = new ReturnResultVO(); $ProductVO = new ContentSiteVO(); $FileVO = new FileVO(); //se tiver produtos para tratar if (count($array_products_id) > 0) { //a pasta zip precisa existir $zip_path = "upload/zip/"; DataHandler::createFolderIfNotExist($zip_path); $array_products_to_zip = array(); $unique_str = ""; //nome final do zip que vai baixar, adiciona alguns parametros indicadores $zip_name = "teto"; if (count($array_products_id) > 0) { //sao varios produtos $zip_name = $zip_name . "_produtos"; } //cada indice dessa array, tem que ser array, terá um json com as info: foreach ($array_products_id as $product_id) { $resultProduto = $ProductVO->setId($product_id, TRUE); if ($resultProduto->success) { $stdProduct = $ProductVO->toStdClass(); $array_products_to_zip[] = $stdProduct; $array_images = array(); if ($imagens) { if (in_array($product_id, $imagens)) { $array_gallery = $ProductVO->getImages(NULL, "gallery", true); foreach ($array_gallery as $imageVO) { $array_images[] = $imageVO->getURL(); $unique_str .= "|" . $imageVO->getId(); //add a imagem na pasta } // $array_dimensions = $ProductVO->getImages(NULL, "dimensions", true); foreach ($array_dimensions as $imageVO) { $array_images[] = $imageVO->getURL(); //add a imagem na pasta $unique_str .= "|" . $imageVO->getId(); } } } $stdProduct->images = $array_images; $array_file_vo = array(); //cria a pasta do produto no zip $product_folder_name = DataHandler::strToURL($stdProduct->title); if (count($array_files) > 0) { if (in_array($product_id, $array_files)) { //esse produto pediu algum file $temp_array_files = $ProductVO->getFiles(); foreach ($temp_array_files as $FileVO) { if (in_array($FileVO->id, $files_id)) { $array_file_vo[] = $FileVO; $unique_str .= "|f." . $file_id; //add a url do arquivo no zip na pasta } } } } $stdProduct->files = $array_file_vo; $stdProduct->pdf = null; //verificar se quer o pdf if (count($pdf) > 0) { $unique_str .= "|pdf!|"; //quero pdf //ver com onde foi salvo if (in_array($product_id, $pdf)) { //ele quer esse pdf, provavelmente se chegou aqui é porque ele realmente exite //mas vou conferir de novo $pdf_url = "upload/pdf/{$product_id}/" . $ProductVO->slug . ".pdf"; if (file_exists($pdf_url)) { $stdProduct->pdf = $pdf_url; } } } } //end if produto sucess } $folder_name = md5($unique_str); DataHandler::createFolderIfNotExist($zip_path . $folder_name . "/"); $zip_name = $zip_path . $folder_name . "/" . $zip_name . ".zip"; //echo $zip_name;exit(); if (!file_exists($zip_name)) { //echo Debug::li($zip_name);exit(); $Zip = new ZipArchive(); $Zip->open($zip_name, ZipArchive::CREATE); //adicionando os arquivos escolhidos foreach ($array_products_to_zip as $ProductStd) { $product_slug_folder = $ProductStd->id . "_" . DataHandler::strToURL($ProductStd->title); foreach ($ProductStd->files as $FileVO) { $url = $FileVO->getUrl(); $array = explode("/", $url); $file = $array[count($array) - 1]; $Zip->addFile($url, $product_slug_folder . "/arquivos/" . $file); } foreach ($ProductStd->images as $url) { //$url = $ImageVO->getUrl(); $array = explode("/", $url); $file = $array[count($array) - 1]; $file = str_replace("original_", "", $file); $Zip->addFile($url, $product_slug_folder . "/imagens/" . $file); } if ($ProductStd->pdf) { $url = $ProductStd->pdf; $array = explode("/", $url); $file = $array[count($array) - 1]; $Zip->addFile($url, $product_slug_folder . "/ficha_tecnica.pdf"); } } $Zip->close(); } header("Location: " . Config::getRootPath($zip_name)); exit; } exit; }
public function purchaseDetail() { //iniciando o retorno padrao em http result $returnResult = new HttpResult(); //id do pedido $id_purchase_order = DataHandler::forceInt($this->arrayRestFolder[1]); //agora verifica se esse pedido é desse usuário $eh_desse_cara = $this->checkPurchaseOwner($id_purchase_order, UserClient::getId()); if ($eh_desse_cara) { //o pedido é dele //busca o detalhe dos pedidos $VO = new PurchaseOrderVO(); $VO->setId($id_purchase_order, TRUE); $StdVO = $VO->toStdClass(); $returnResult->setSuccess(TRUE); $retornoDaPaginaHTML = new PurchaseInfo(); //lista os pagamentos efetuados pra esse id //$StdVO->id include_once "library/e_commerce/modules/payment/dao/PaymentDAO.class.php"; $PaymentDAO = PaymentDAO::getInstance(); $ReturnResultVO = $PaymentDAO->select(PaymentDAO::RETURN_VO, NULL, 1, NULL, $StdVO->id); $ReturnResultVO->transformAllVoInStdClass(); //~inventa um parametro $StdVO->array_payment = array(); $StdVO->total_payment = 0; if ($ReturnResultVO->success) { $StdVO->array_payment = $ReturnResultVO->result; foreach ($StdVO->array_payment as $StdPaymentVO) { $StdVO->total_payment += DataHandler::forceNumber($StdPaymentVO->total_value); } } $StdVO->total_payment = DataHandler::convertMoneyToBrazil($StdVO->total_payment, FALSE); $StdVO->total_a_pagar = 0; $tempDebito = DataHandler::forceNumber($StdVO->total_value) - DataHandler::forceNumber($StdVO->total_payment); if ($tempDebito > 0) { $StdVO->total_a_pagar = $tempDebito; } $StdVO->total_a_pagar = DataHandler::convertMoneyToBrazil($StdVO->total_a_pagar, FALSE); include_once "library/e_commerce/modules/purchase/dao/PurchaseItemDAO.class.php"; $PurchaseItemDAO = PurchaseItemDAO::getInstance(); /* * */ $ReturnDataVO = $PurchaseItemDAO->select(PurchaseItemDAO::RETURN_VO, NULL, NULL, $StdVO->id); $ReturnDataVO->transformAllVoInStdClass(); //~inventa um parametro $StdVO->array_itens = array(); if ($ReturnDataVO->success) { $StdVO->array_itens = $ReturnDataVO->result; } $valorSomandoItens = 0; foreach ($StdVO->array_itens as $item) { $valorSomandoItens = $valorSomandoItens + DataHandler::forceNumber($item->product_price) * $item->quantity; } $descontoFinal = 0; $CouponVO = new CouponVO(); $arrayLinkVO = $VO->getLinks("coupon", 1); if (count($arrayLinkVO) > 0) { //busca todos os cupons dentro da validade e que o codigo token não é obrigatorio $CouponDAO = CouponDAO::getInstance(); $ReturnDataVO = $CouponDAO->select(CouponDAO::RETURN_VO, $arrayLinkVO[0]->linked_table_id, 2, NULL, NULL, NULL, NULL, NULL, date('Y-m-d'), $date_in_symbol = "<=", date('Y-m-d'), $date_out_symbol = ">="); if ($ReturnDataVO->success && count($ReturnDataVO->result) > 0) { $CouponVO = $ReturnDataVO->result[0]; switch ($CouponVO->getType()) { case "+": $descontoFinal = $CouponVO->getValue() + $valorSomandoItens; break; case "-": $descontoFinal = $CouponVO->getValue() - $valorSomandoItens; break; case "*": $descontoFinal = $valorSomandoItens - $valorSomandoItens * ($CouponVO->getValue() / 100); break; default: break; } } } $CouponStd = $CouponVO->toStdClass(); $CouponStd->valor_total = $valorSomandoItens; $CouponStd->valor_desconto = $valorSomandoItens - $descontoFinal; $StdVO->coupon = $CouponStd; $retornoDaPaginaHTML->std_vo = $StdVO; $returnResult->setHttpContentResult($retornoDaPaginaHTML); } else { $returnResult->setSuccess(FALSE); $returnResult->addMessage("Não foi encontrado o detalhe desse pedido."); } //retorna pra view return $returnResult; }