Example #1
0
 /**
  * 
  * 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;
 }
Example #2
0
 /**
  * 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;
 }
Example #3
0
 /**
  * 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;
 }
Example #4
0
 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;
 }