/functions/pedidos.class.php

https://gitlab.com/Thomazelli/triade · PHP · 355 lines · 222 code · 50 blank · 83 comment · 6 complexity · c3174c53c5fca3ef47e67e65134bf955 MD5 · raw file

  1. <?php
  2. /*****
  3. * @Classe: Pedidos
  4. * @Autor: Gustavo Thomazelli
  5. * @Versão: 1
  6. * @Data: 22/05/2016 - 15:41:15
  7. *****/
  8. require_once("db.class.php");
  9. class Pedidos {
  10. public $ped_id; // int
  11. public $usu_id; // int
  12. public $plan_id; // int
  13. public $ped_valor; // outro
  14. public $ped_data_compra; // varchar
  15. public $status_id; // int
  16. public $status_desc; // varchar
  17. public $usu_nome; // varchar
  18. public $usu_email; // varchar
  19. public $plan_titulo; // varchar
  20. /**
  21. * @return int
  22. **/
  23. public function getPed_id(){
  24. return $this->ped_id;
  25. }
  26. /**
  27. * @param int $ped_id
  28. **/
  29. public function setPed_id($ped_id){
  30. $this->ped_id = $ped_id;
  31. }
  32. /**
  33. * @return int
  34. **/
  35. public function getUsu_id(){
  36. return $this->usu_id;
  37. }
  38. /**
  39. * @param int $usu_id
  40. **/
  41. public function setUsu_id($usu_id){
  42. $this->usu_id = $usu_id;
  43. }
  44. /**
  45. * @return int
  46. **/
  47. public function getPlan_id(){
  48. return $this->plan_id;
  49. }
  50. /**
  51. * @param int $plan_id
  52. **/
  53. public function setPlan_id($plan_id){
  54. $this->plan_id = $plan_id;
  55. }
  56. /**
  57. * @return outro
  58. **/
  59. public function getPed_valor(){
  60. return $this->ped_valor;
  61. }
  62. /**
  63. * @param outro $ped_valor
  64. **/
  65. public function setPed_valor($ped_valor){
  66. $this->ped_valor = $ped_valor;
  67. }
  68. /**
  69. * @return varchar
  70. **/
  71. public function getPed_data_compra(){
  72. return utf8_encode($this->ped_data_compra);
  73. }
  74. /**
  75. * @param varchar $ped_data_compra
  76. **/
  77. public function setPed_data_compra($ped_data_compra){
  78. $this->ped_data_compra = utf8_decode($ped_data_compra);
  79. }
  80. /**
  81. * @return int
  82. **/
  83. public function getStatus_id(){
  84. return $this->status_id;
  85. }
  86. /**
  87. * @param int $status_id
  88. **/
  89. public function setStatus_id($status_id){
  90. $this->status_id = $status_id;
  91. }
  92. /**
  93. * @return varchar
  94. **/
  95. public function getStatus_desc(){
  96. return utf8_encode($this->status_desc);
  97. }
  98. /**
  99. * @param varchar $ped_data_compra
  100. **/
  101. public function setStatus_desc($status_desc){
  102. $this->status_desc = utf8_decode($status_desc);
  103. }
  104. /*****
  105. * Listar - listar() ou listar(string filtro) ou (int pagina, int itensPorPagina)
  106. * @return Pedidos[]
  107. ******/
  108. public static function listar(){
  109. $Pedidos; //Array de objeto a ser retornado
  110. $args = func_get_args();
  111. try{
  112. $sql = "
  113. SELECT
  114. pedidos.ped_id AS PED_ID,
  115. pedidos.usu_id AS USU_ID,
  116. pedidos.plan_id AS PLAN_ID,
  117. pedidos.ped_valor AS PED_VALOR,
  118. pedidos.ped_data_compra AS PED_DATA_COMPRA,
  119. pedidos.status_id AS STATUS_ID,
  120. status.status_descricao AS STATUS_DESCRICAO,
  121. usuarios.usu_nome AS USU_NOME,
  122. usuarios.usu_email AS USU_EMAIL,
  123. planos.plan_titulo AS PLAN_TITULO
  124. FROM
  125. pedidos
  126. LEFT JOIN status ON status.status_id = pedidos.status_id
  127. LEFT JOIN usuarios ON usuarios.usu_id = pedidos.usu_id
  128. LEFT JOIN planos ON planos.plan_id = pedidos.plan_id
  129. ";
  130. if(count($args) == 1){
  131. $sql .= " ".$args[0];
  132. }
  133. //echo $sql;
  134. //instanciar um objeto banco de dados
  135. $db = new Db;
  136. //abrir a conexao
  137. $db->connect();
  138. //executar o select da instrucao sql
  139. $res = $db->select($sql);
  140. //adicionar ao vetor como objetos
  141. for($linha = 0; $linha < $res['total']; $linha++){
  142. $Pedidos[$linha] = new Pedidos();
  143. $Pedidos[$linha]->ped_id = $res[$linha]['PED_ID'];
  144. $Pedidos[$linha]->usu_id = $res[$linha]['USU_ID'];
  145. $Pedidos[$linha]->plan_id = $res[$linha]['PLAN_ID'];
  146. $Pedidos[$linha]->ped_valor = $res[$linha]['PED_VALOR'];
  147. $Pedidos[$linha]->ped_data_compra = $res[$linha]['PED_DATA_COMPRA'];
  148. $Pedidos[$linha]->status_id = $res[$linha]['STATUS_ID'];
  149. $Pedidos[$linha]->status_desc = $res[$linha]['STATUS_DESCRICAO'];
  150. $Pedidos[$linha]->usu_nome = $res[$linha]['USU_NOME'];
  151. $Pedidos[$linha]->usu_email = $res[$linha]['USU_EMAIL'];
  152. $Pedidos[$linha]->plan_titulo = $res[$linha]['PLAN_TITULO'];
  153. }
  154. //fechar conexao
  155. $db->close();
  156. }catch(Exception $e){
  157. throw $e;
  158. }
  159. return $Pedidos;
  160. }
  161. /**
  162. * Detalhar - baseado nos atributos já setados
  163. */
  164. public function detalhar(){
  165. try{
  166. $sql = "
  167. SELECT
  168. pedidos.ped_id AS PED_ID,
  169. pedidos.usu_id AS USU_ID,
  170. pedidos.plan_id AS PLAN_ID,
  171. pedidos.ped_valor AS PED_VALOR,
  172. pedidos.ped_data_compra AS PED_DATA_COMPRA,
  173. pedidos.status_id AS STATUS_ID,
  174. usuarios.usu_nome AS USU_NOME,
  175. usuarios.usu_email AS USU_EMAIL,
  176. planos.plan_titulo AS PLAN_TITULO
  177. FROM
  178. pedidos
  179. LEFT JOIN status ON status.status_id = pedidos.status_id
  180. LEFT JOIN usuarios ON usuarios.usu_id = pedidos.usu_id
  181. LEFT JOIN planos ON planos.plan_id = pedidos.plan_id
  182. WHERE ";
  183. if($this->ped_id){
  184. $sql .= " ped_id = ".$this->ped_id;
  185. }else{
  186. throw new Exception("Falha na consulta");
  187. }
  188. //instancia um objeto banco de dados
  189. $db = new Db;
  190. //abre a conexao
  191. $db->connect();
  192. //executa o select da instrucao sql
  193. $res = $db->select($sql);
  194. //adiciona ao vetor como objetos
  195. $this->ped_id = $res['0']['PED_ID'];
  196. $this->usu_id = $res['0']['USU_ID'];
  197. $this->plan_id = $res['0']['PLAN_ID'];
  198. $this->ped_valor = $res['0']['PED_VALOR'];
  199. $this->ped_data_compra = $res['0']['PED_DATA_COMPRA'];
  200. $this->status_id = $res['0']['STATUS_ID'];
  201. $this->usu_nome = $res['0']['USU_NOME'];
  202. $this->usu_email = $res['0']['USU_EMAIL'];
  203. $this->plan_titulo = $res['0']['PLAN_TITULO'];
  204. //fechar conexao
  205. $db->close();
  206. if($res['total']==0)
  207. throw new Exception("Nenhum resultado");
  208. }catch(Exception $e){
  209. throw $e;
  210. }
  211. }
  212. /**
  213. * Salvar - Inserir / Editar
  214. **/
  215. public function salvar(){
  216. try{
  217. if(!$this->ped_id){
  218. $this->inserir();
  219. }else{
  220. $this->editar();
  221. }
  222. }catch(Exception $e){
  223. throw $e;
  224. }
  225. }
  226. /**
  227. * Inserir
  228. **/
  229. private function inserir(){
  230. $sql = "INSERT INTO
  231. pedidos
  232. (
  233. ped_id,
  234. usu_id,
  235. plan_id,
  236. ped_valor,
  237. ped_data_compra,
  238. status_id
  239. )
  240. VALUES
  241. (
  242. 0,
  243. ".(($this->usu_id)?($this->usu_id):"DEFAULT").",
  244. ".(($this->plan_id)?($this->plan_id):"DEFAULT").",
  245. ".(($this->ped_valor)?($this->ped_valor):"DEFAULT").",
  246. ".(($this->ped_data_compra)?"'".addslashes($this->ped_data_compra)."'":"DEFAULT").",
  247. ".(($this->status_id)?($this->status_id):"DEFAULT")."
  248. )";
  249. try{
  250. $db = new Db;
  251. $db->connect();
  252. $db->query($sql);
  253. $GLOBALS['TEMP_VAR_A'] = $db->insertId();
  254. $db->close();
  255. }catch(Exception $e){
  256. throw $e;
  257. }
  258. }
  259. /**
  260. * Editar
  261. **/
  262. private function editar(){
  263. $sql = "UPDATE
  264. pedidos
  265. SET
  266. usu_id = ".(($this->usu_id)?($this->usu_id):"DEFAULT").",
  267. plan_id = ".(($this->plan_id)?($this->plan_id):"DEFAULT").",
  268. ped_valor = ".(($this->ped_valor)?($this->ped_valor):"DEFAULT").",
  269. ped_data_compra = ".(($this->ped_data_compra)?"'".addslashes($this->ped_data_compra)."'":"DEFAULT").",
  270. status_id = ".(($this->status_id)?($this->status_id):"DEFAULT")."
  271. WHERE
  272. ped_id = ".$this->ped_id;
  273. try{
  274. $db = new Db;
  275. $db->connect();
  276. $db->query($sql);
  277. $db->close();
  278. }catch(Exception $e){
  279. throw $e;
  280. }
  281. }
  282. /*****
  283. * Excluir
  284. ******/
  285. public function excluir(){
  286. $sql = "DELETE FROM
  287. pedidos
  288. WHERE
  289. ped_id = ".$this->ped_id;
  290. try{
  291. $db = new Db;
  292. $db->connect();
  293. $db->affectedRows($sql);
  294. $db->close();
  295. }catch(Exception $e){
  296. throw $e;
  297. }
  298. }
  299. }
  300. ?>