Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.40 KB | None | 0 0
  1. ////////- Front-End
  2. // main finalizar pedido btn SIM
  3. $('#btn_finalizar_pedido').on('click', function() {
  4. var dados_finalizar_pedido = 'op=pedido'
  5. + '&op_prepare=' + $.trim($('#op_prepare').val())
  6. + '&endereco=' + $.trim($('#entrega_endereco').val())
  7. + '&numero=' + $.trim($('#entrega_numero').val())
  8. + '&bairro=' +$.trim( $('#entrega_bairro').val())
  9. + '&cidade=' + $.trim($('#entrega_cidade').val())
  10. + '&uf=' + $.trim($('#entrega_uf').val())
  11. + '&cep=' + $.trim($('#entrega_cep').val())
  12. + '&complemento=' + $.trim($('#entrega_complemento').val())
  13. + '&telefone=' + $.trim($('#entrega_telefone').val())
  14. + '&celular=' + $.trim($('#entrega_celular').val())
  15. + '&email=' + $.trim($('#entrega_email').val())
  16. + '&observacoes=' + $.trim($('#entrega_observacoes').val())
  17. + '&status=' + $.trim($('#pedido_status').val());
  18. $.ajax({
  19. cache: false,
  20. url: 'assets/controle/cadastro.php',
  21. type: 'POST',
  22. data: dados_finalizar_pedido,
  23. dataType: 'json',
  24. beforeSend: () => {
  25. $('#btn_finalizar_pedido').addClass('loading');
  26. },
  27. success: (r) => {
  28. console.log(r.retorno);
  29. if (r.retorno == 1) {
  30. $('#btn_finalizar_pedido').removeClass('loading');
  31. $('#form_send_print').fadeIn();
  32. $('#msg_isset_pedido').hide().html('');
  33. $('#btn_sim_nao').hide();
  34. $('#tbl_pes_pedido').DataTable().ajax.reload(null, false);
  35. $('.strUpper').css('text-transform', 'uppercase');
  36. $.each(r.alert, function(i, v) {
  37. $context = r.alert[i].context;
  38. $message = r.alert[i].message;
  39. $position = r.alert[i].position;
  40. $positionClass = 'toast-' + $position;
  41. toastr.remove();
  42. toastr[$context]($message, '', {
  43. positionClass: $positionClass
  44. });
  45. });
  46. } else {
  47. $('#btn_finalizar_pedido').removeClass('loading');
  48. $.each(r.alert, function(i, v) {
  49. $context = r.alert[i].context;
  50. $message = r.alert[i].message;
  51. $position = r.alert[i].position;
  52. $positionClass = 'toast-' + $position;
  53. toastr.remove();
  54. toastr[$context]($message, '', {
  55. positionClass: $positionClass
  56. });
  57. });
  58. }
  59. },
  60. error: (r) => {
  61. console.log(r.retorno);
  62. $('#btn_finalizar_pedido').removeClass('loading');
  63. $.each(r.alert, function(i, v) {
  64. $context = r.alert[i].context;
  65. $message = r.alert[i].message;
  66. $position = r.alert[i].position;
  67. $positionClass = 'toast-' + $position;
  68. toastr.remove();
  69. toastr[$context]($message, '', {
  70. positionClass: $positionClass
  71. });
  72. });
  73. },
  74. complete: (r) => {
  75. console.log(r);
  76. console.log(r.retorno);
  77. if (r.retorno == 1) {
  78. $('#btn_finalizar_pedido').removeClass('loading');
  79. $('#form_send_print').fadeIn();
  80. $('#msg_isset_pedido').hide().html('');
  81. $('#btn_sim_nao').hide();
  82. $('#tbl_pes_pedido').DataTable().ajax.reload(null, false);
  83. $('.strUpper').css('text-transform', 'uppercase');
  84. $.each(r.alert, function(i, v) {
  85. $context = r.alert[i].context;
  86. $message = r.alert[i].message;
  87. $position = r.alert[i].position;
  88. $positionClass = 'toast-' + $position;
  89. toastr.remove();
  90. toastr[$context]($message, '', {
  91. positionClass: $positionClass
  92. });
  93. });
  94. } else {
  95. $('#btn_finalizar_pedido').removeClass('loading');
  96. $.each(r.alert, function(i, v) {
  97. $context = r.alert[i].context;
  98. $message = r.alert[i].message;
  99. $position = r.alert[i].position;
  100. $positionClass = 'toast-' + $position;
  101. toastr.remove();
  102. toastr[$context]($message, '', {
  103. positionClass: $positionClass
  104. });
  105. });
  106. }
  107. }
  108. });
  109.  
  110. });// end finalizar pedido btn SIM
  111.  
  112. ////////- Back-End
  113. case 'pedido': {
  114. $data = array();
  115. $r_pedido = 0;
  116. $op_prepare = trim($_REQUEST['op_prepare']);
  117.  
  118. if (isset($_SESSION['id_cliente']) || isset($_SESSION['nome_cliente'])) {
  119. $id_cliente = trim($_SESSION['id_cliente']);
  120. $nome_cliente = trim(mb_strtoupper($_SESSION['nome_cliente']));
  121. }
  122.  
  123. $status = trim(mb_strtoupper($_REQUEST['status']));
  124. $_SESSION['status'] = $status;
  125. $id_pos = '';
  126. $id_pos = md5(sha1(base64_encode(uniqid(rand(), true))));
  127. //prepare sql next id pedido
  128. //$stmt_next_id_pedido = $pdo->prepare('SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name = \'pedidos\' AND table_schema = \'sistema\';');
  129. //$stmt_next_id_pedido = $pdo->prepare("SELECT MAX(id) AS p_id FROM pedidos");
  130.  
  131. //prepare sql insert endereco entrega
  132. $stmt_endereco_entrega = $pdo->prepare('INSERT INTO enderecos_entrega (id_cliente, endereco, numero, bairro, cidade, uf, cep, complemento, telefone, celular, email, observacoes, id_pos) VALUES (:id_cliente, :endereco, :numero, :bairro, :cidade, :uf, :cep, :complemento, :telefone, :celular, :email, :observacoes, :id_pos)');
  133.  
  134. $stmt_endereco_entrega_update = $pdo->prepare('UPDATE enderecos_entrega SET endereco = :endereco, numero = :numero, bairro = :bairro, cidade = :cidade, uf = :uf, cep = :cep, complemento = :complemento, telefone = :telefone, celular = :celular, email = :email, observacoes = :observacoes WHERE id = :id');
  135.  
  136. //prepare sql insert pedido
  137. $stmt_pedido = $pdo->prepare('INSERT INTO pedidos (id_cliente, nome_cliente, id_funcionario, nome_funcionario, id_endereco_entrega, dia, mes, ano, hora, status, total_itens, subtotal_pedido, id_pos) VALUES (:id_cliente, :nome_cliente, :id_funcionario, :nome_funcionario, :id_endereco_entrega, :dia, :mes, :ano, :hora, :status, :total_itens, :subtotal_pedido, :id_pos)');
  138.  
  139. //prepare sql insert itens pedido
  140. $stmt_itens_pedido = $pdo->prepare('INSERT INTO itens_pedido (id_produto, referencia_produto, nome_produto, descricao_produto, observacao_produto, valor_venda_produto, valor_total_produto, quantidade_produto, unidade_produto, imagem_produto, id_pos) VALUES (:id_produto, :referencia_produto, :nome_produto, :descricao_produto, :observacao_produto, :valor_venda_produto, :valor_total_produto, :quantidade_produto, :unidade_produto, :imagem_produto, :id_pos)');
  141.  
  142. /*if ($stmt_next_id_pedido->execute()) {
  143. if($row = $stmt_next_id_pedido->fetch(PDO::FETCH_OBJ)){
  144. $id_pedido = ($row->p_id == null || $row->p_id == 0) ? $row->p_id = 1 : $row->p_id + 1;
  145. $_SESSION['id_pedido'] = $id_pedido;
  146. }
  147. }*/
  148.  
  149. $stmt_endereco_cliente_id = $pdo->prepare("SELECT * FROM enderecos_entrega WHERE id_cliente = :id");
  150. $stmt_endereco_cliente_id->bindParam(':id', $id_cliente, PDO::PARAM_STR);
  151. $stmt_endereco_cliente_id->execute();
  152. if ($stmt_endereco_cliente_id->rowCount() > 0) {
  153. $dados_end_entrega_cliente = $stmt_endereco_cliente_id->fetch(PDO::FETCH_OBJ);
  154. //dados endereco entrega
  155. /*
  156. $endereco = $dados_end_entrega_cliente->endereco;
  157. $numero = $dados_end_entrega_cliente->numero;
  158. $bairro = $dados_end_entrega_cliente->bairro;
  159. $cidade = $$dados_end_entrega_cliente->cidade;
  160. $uf = $dados_end_entrega_cliente->uf;
  161. $cep = $dados_end_entrega_cliente->cep;
  162. $complemento = $dados_end_entrega_cliente->complemento;
  163. $telefone = $dados_end_entrega_cliente->telefone;
  164. $celular = $dados_end_entrega_cliente->celular;
  165. $email = $dados_end_entrega_cliente->email;
  166. $observacoes = $dados_end_entrega_cliente->observacoes;
  167. */
  168. $id_endereco_entrega = $dados_end_entrega_cliente->id;
  169. $_SESSION['id_endereco_entrega'] = $id_endereco_entrega;
  170. if ($op_prepare == 'update') {
  171. if ($stmt_endereco_entrega_update->execute(
  172. array(
  173. ':id' => $id_endereco_entrega,
  174. ':endereco' => trim(mb_strtoupper($_REQUEST['endereco'])),
  175. ':numero' => trim($_REQUEST['numero']),
  176. ':bairro' => trim(mb_strtoupper($_REQUEST['bairro'])),
  177. ':cidade' => trim(mb_strtoupper($_REQUEST['cidade'])),
  178. ':uf' => trim(mb_strtoupper($_REQUEST['uf'])),
  179. ':cep' => trim($_REQUEST['cep']),
  180. ':complemento' => trim(mb_strtoupper($_REQUEST['complemento'])),
  181. ':telefone' => trim($_REQUEST['telefone']),
  182. ':celular' => trim($_REQUEST['celular']),
  183. ':email' => trim($_REQUEST['email']),
  184. ':observacoes' => trim(mb_strtoupper($_REQUEST['observacoes']))
  185. )
  186. )) {
  187.  
  188. }
  189. }
  190. } else {
  191. if ($op_prepare == 'insert') {
  192. //dados endereco entrega
  193. $endereco = trim(mb_strtoupper($_REQUEST['endereco']));
  194. $numero = trim($_REQUEST['numero']);
  195. $bairro = trim(mb_strtoupper($_REQUEST['bairro']));
  196. $cidade = trim(mb_strtoupper($_REQUEST['cidade']));
  197. $uf = trim(mb_strtoupper($_REQUEST['uf']));
  198. $cep = trim($_REQUEST['cep']);
  199. $complemento = trim(mb_strtoupper($_REQUEST['complemento']));
  200. $telefone = trim($_REQUEST['telefone']);
  201. $celular = trim($_REQUEST['celular']);
  202. $email = trim($_REQUEST['email']);
  203. $observacoes = trim(mb_strtoupper($_REQUEST['observacoes']));
  204. //prepare sql next id endereco entrega
  205. //$stmt_next_id_endereco_entrega = $pdo->prepare('SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name = \'enderecos_entrega\' AND table_schema = \'sistema\';');
  206. /*$stmt_next_id_endereco_entrega = $pdo->prepare("SELECT MAX(id) AS e_id FROM enderecos_entrega");
  207. if ($stmt_next_id_endereco_entrega->execute()) {
  208. if($row = $stmt_next_id_endereco_entrega->fetch(PDO::FETCH_OBJ)){
  209. //$id_endereco_entrega = $row->AUTO_INCREMENT;
  210. $id_endereco_entrega = ($row->e_id == null || $row->e_id == 0) ? $row->e_id = 1 : $row->e_id + 1;
  211. $_SESSION['id_endereco_entrega'] = $id_endereco_entrega;
  212. }
  213. }*/
  214. $campos_entrega = array(
  215. //':id_pedido' => $id_pedido,
  216. ':id_cliente' => $id_cliente,
  217. ':endereco' => $endereco,
  218. ':numero' => $numero,
  219. ':bairro' => $bairro,
  220. ':cidade' => $cidade,
  221. ':uf' => $uf,
  222. ':cep' => $cep,
  223. ':complemento' => $complemento,
  224. ':telefone' => $telefone,
  225. ':celular' => $celular,
  226. ':email' => $email,
  227. ':observacoes' => $observacoes,
  228. ':id_pos' => $id_pos
  229. );
  230.  
  231. $stmt_endereco_entrega->execute($campos_entrega);
  232. $stmt_endereco_cliente_id_2 = $pdo->prepare("SELECT * FROM enderecos_entrega WHERE id_cliente = :id");
  233. $stmt_endereco_cliente_id_2->bindParam(':id', $id_cliente, PDO::PARAM_STR);
  234. $stmt_endereco_cliente_id_2->execute();
  235. if ($stmt_endereco_cliente_id_2->rowCount() > 0) {
  236. $dados_end_entrega_cliente = $stmt_endereco_cliente_id_2->fetch(PDO::FETCH_OBJ);
  237. $id_endereco_entrega = $dados_end_entrega_cliente->id;
  238. $_SESSION['id_endereco_entrega'] = $id_endereco_entrega;
  239. }
  240. }
  241. }
  242.  
  243. //dados pedido
  244. $id_funcionario = $_SESSION['id'];
  245. $nome_funcionario = trim(mb_strtoupper($_SESSION['user_nome']));
  246.  
  247. if (isset($_SESSION['pedido']) AND ! empty($_SESSION['pedido'])) {
  248. $total_itens = count($_SESSION['pedido']);
  249. $total = 0;
  250. foreach ($_SESSION['pedido'] as $key => $value) {
  251. $idProduto = $value['id'];
  252. $stmt_produto = $pdo->prepare("SELECT * FROM produtos WHERE id = :id");
  253. $stmt_produto->bindParam(':id', $idProduto, PDO::PARAM_STR);
  254. $stmt_produto->execute();
  255. if ($stmt_produto->rowCount() > 0) {
  256. $dadosProdutos = $stmt_produto->fetch(PDO::FETCH_OBJ);
  257. } else {
  258. echo json_encode("Erro! produto não encontrado.");
  259. exit(0);
  260. }
  261. $campos_itens = array(
  262. //':id_pedido' => $id_pedido,
  263. ':id_produto' => $dadosProdutos->id,
  264. ':referencia_produto' => $dadosProdutos->referencia,
  265. ':nome_produto' => $dadosProdutos->nome,
  266. ':descricao_produto' => $dadosProdutos->descricao,
  267. ':observacao_produto' => $dadosProdutos->observacao,
  268. ':valor_venda_produto' => $dadosProdutos->valor_venda,
  269. ':valor_total_produto' => number_format($dadosProdutos->valor_venda * $value['qtd'], 2, ".", ""),
  270. ':quantidade_produto' => $value['qtd'],
  271. ':unidade_produto' => $value['unidade'],
  272. ':imagem_produto' => $dadosProdutos->imagem,
  273. ':id_pos' => $id_pos
  274. );
  275. //SOMAR TUDO
  276. $total += $dadosProdutos->valor_venda * $value['qtd'];
  277. $subtotal_pedido = number_format($total, 2, ".", "");
  278.  
  279. $stmt_itens_pedido->execute($campos_itens);
  280. }
  281. }
  282.  
  283. $hora = date('H:i:s');
  284. $_SESSION['hora_pedido'] = $hora;
  285. $_SESSION['data_pedido'] = date('d') . '/' . date('m') . '/' . date('Y');
  286.  
  287. $campos_pedido = array(
  288. ':id_cliente' => $id_cliente,
  289. ':nome_cliente' => $nome_cliente,
  290. ':id_funcionario' => $id_funcionario,
  291. ':nome_funcionario' => $nome_funcionario,
  292. ':id_endereco_entrega' => $id_endereco_entrega,
  293. ':dia' => date('d'),
  294. ':mes' => date('m'),
  295. ':ano' => date('Y'),
  296. ':hora' => $hora,
  297. ':status' => $status,
  298. ':total_itens' => $total_itens,
  299. ':subtotal_pedido' => $subtotal_pedido,
  300. ':id_pos' => $id_pos
  301. );
  302.  
  303. if ($stmt_pedido->execute($campos_pedido)) {
  304. $r_pedido = 1;
  305. } else {
  306. $r_pedido = 0;
  307. }
  308.  
  309. if ($r_pedido == 1) {
  310. $data['retorno'] = 1;
  311. $data['alert'][] = array(
  312. 'message' => 'Salvo com sucesso.',
  313. 'context' => 'success',
  314. 'position' => 'top-center'
  315. );
  316. $stmt_session_id = $pdo->prepare("SELECT * FROM pedidos WHERE id_pos = :id_pos");
  317. $stmt_session_id->bindParam(':id_pos', $id_pos, PDO::PARAM_STR);
  318. $stmt_session_id->execute();
  319. if ($stmt_session_id->rowCount() > 0) {
  320. $dados_id = $stmt_session_id->fetch(PDO::FETCH_OBJ);
  321. $_SESSION['id_pedido'] = $dados_id->id;
  322. }
  323.  
  324. //Update id_pedido dos itens pedido
  325. $stmt_itens_pedido_up = $pdo->prepare('UPDATE itens_pedido SET id_pedido = :id_pedido WHERE id_pos = :id_pos');
  326. $campo_itens_up = array(
  327. ':id_pedido' => $dados_id->id,
  328. ':id_pos' => $id_pos
  329. );
  330. $stmt_itens_pedido_up->execute($campo_itens_up);
  331.  
  332. //Update id_pedido dos enderecos entrega
  333. $stmt_endereco_up = $pdo->prepare('UPDATE enderecos_entrega SET id_pedido = :id_pedido WHERE id_pos = :id_pos');
  334. $campo_end_up = array(
  335. ':id_pedido' => $dados_id->id,
  336. ':id_pos' => $id_pos
  337. );
  338. $stmt_endereco_up->execute($campo_end_up);
  339.  
  340. } else {
  341. $data['retorno'] = 0;
  342. $data['alert'][] = array(
  343. 'message' => 'Erro ao salvar.',
  344. 'context' => 'error',
  345. 'position' => 'top-center'
  346. );
  347. }
  348.  
  349. echo json_encode($data);
  350. } break;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement