{"id":471,"date":"2022-07-11T15:52:02","date_gmt":"2022-07-11T18:52:02","guid":{"rendered":"http:\/\/jvitorwolfart.pinheirasc.com\/?p=471"},"modified":"2022-07-16T16:13:30","modified_gmt":"2022-07-16T19:13:30","slug":"projeto-padaria","status":"publish","type":"post","link":"https:\/\/jvitorwolfart.pinheirasc.com\/index.php\/2022\/07\/11\/projeto-padaria\/","title":{"rendered":"Projeto padaria"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"471\" class=\"elementor elementor-471\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b097a1f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b097a1f\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a7daa7d\" data-id=\"a7daa7d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1960b01 elementor-widget elementor-widget-text-editor\" data-id=\"1960b01\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.23.0 - 25-07-2024 *\/\n.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:#69727d;color:#fff}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap{color:#69727d;border:3px solid;background-color:transparent}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap{margin-top:8px}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap-letter{width:1em;height:1em}.elementor-widget-text-editor .elementor-drop-cap{float:left;text-align:center;line-height:1;font-size:50px}.elementor-widget-text-editor .elementor-drop-cap-letter{display:inline-block}<\/style>\t\t\t\t<p dir=\"auto\">Esse foi meu segundo projeto do Jovem Programador m\u00f3dulo 2.<\/p><p dir=\"auto\">Esse projeto na verdade \u00e9 uma evolu\u00e7\u00e3o natural do projeto da oficina, pois me baseei bastante no projeto da oficina para desenvolver este projeto com in\u00fameras melhorias e tamb\u00e9m para que ele ficasse com um n\u00edvel mais avan\u00e7ado do que o primeiro (projeto da oficina).<\/p><p dir=\"auto\">Principais evolu\u00e7\u00f5es em rela\u00e7\u00e3o ao projeto da oficina:<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e45c7ce elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e45c7ce\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5e36fe6\" data-id=\"5e36fe6\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-79ad5b8 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"79ad5b8\" data-element_type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<link rel=\"stylesheet\" href=\"https:\/\/jvitorwolfart.pinheirasc.com\/wp-content\/plugins\/elementor\/assets\/css\/widget-icon-list.min.css\">\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Na parte da intera\u00e7\u00e3o com o banco de dados, nesta vers\u00e3o da padaria j\u00e1 foi evolu\u00eddo para evitar risco de SQL injection<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">No sistema da padaria foi inclu\u00eddo uma se\u00e7\u00e3o apenas para estat\u00edsticas dos dados<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Como a maioria dos registros do banco de dados se relaciona de alguma forma, inclu\u00ed o campo de status, onde sinaliza se o registro est\u00e1 ativo ou inativo, dessa forma mantendo os registros e integridade do banco de dados<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c8d7600 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c8d7600\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9950be1\" data-id=\"9950be1\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-818a59a elementor-widget elementor-widget-text-editor\" data-id=\"818a59a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>O projeto consiste basicamente em:<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-06cc92c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"06cc92c\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-eaf1321\" data-id=\"eaf1321\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b5829e4 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"b5829e4\" data-element_type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Um cadastro de usu\u00e1rios (somente permitido a usu\u00e1rios com permiss\u00e3o ROOT)<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Permiss\u00e3o de acessos dependendo do n\u00edvel do usu\u00e1rio<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Cadastro simples de clientes<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Cadastro de funcion\u00e1rios<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Cadastro de produtos<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Registro de vendas (simula emiss\u00e3o de uma nota fiscal)<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Estat\u00edsticas dos dados<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1a6c8af elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1a6c8af\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-986620e\" data-id=\"986620e\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3508df6 elementor-widget elementor-widget-text-editor\" data-id=\"3508df6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>\u00c9 utilizado o banco de dados Sqlite3.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2cab279 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2cab279\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b06acf0\" data-id=\"b06acf0\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7d4971c elementor-widget elementor-widget-heading\" data-id=\"7d4971c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.23.0 - 25-07-2024 *\/\n.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}<\/style><h4 class=\"elementor-heading-title elementor-size-default\">Regra de neg\u00f3cio do projeto<\/h4>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b01835c elementor-widget elementor-widget-text-editor\" data-id=\"b01835c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p dir=\"auto\">O usu\u00e1rio deve ser cadastrado apenas pelo ROOT ou por algum usu\u00e1rio com permiss\u00f5es de ROOT, este por sua vez poder\u00e1, no momento do cadastro, ou a qualquer momento, setar as permiss\u00f5es dos demais usu\u00e1rios, incluindo dar a eles permiss\u00e3o de ROOT, as permiss\u00f5es poss\u00edveis s\u00e3o:<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-751e619 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"751e619\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b859658\" data-id=\"b859658\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-10b69bb elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"10b69bb\" data-element_type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Somente consulta (quando n\u00e3o tem nenhuma permiss\u00e3o setada)<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Criar (permite cadastrar novos produtos, clientes e emitir notas)<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Editar (permite alterar produtos, clientes e notas pendentes)<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Excluir (permite desativar produtos e clientes e cancelar notas)<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">ROOT (permite setar permiss\u00f5es para os usu\u00e1rios, e tamb\u00e9m cadastrar, editar ou desligar funcion\u00e1rios)<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-de2fb7e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"de2fb7e\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9266f19\" data-id=\"9266f19\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7e8d5a6 elementor-widget elementor-widget-text-editor\" data-id=\"7e8d5a6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p dir=\"auto\">Assim como no projeto da oficina, existe um superusu\u00e1rio que atrav\u00e9s dele poder\u00e1 ser setado ao primeiro usu\u00e1rio cadastrado a permiss\u00e3o de ROOT e ap\u00f3s isso esse primeiro usu\u00e1rio j\u00e1 pode setar as permiss\u00f5es aos demais usu\u00e1rios.<\/p><p dir=\"auto\">Ao entrar no sistema o usu\u00e1rio deve receber uma mensagem de boas vindas informando suas permiss\u00f5es. De acordo com suas permiss\u00f5es ser\u00e1 as op\u00e7\u00f5es que ele deve ter dispon\u00edvel na tela.<\/p><p dir=\"auto\">Caso seja apenas consulta ele ter\u00e1 acesso a parte das estat\u00edsticas e a todo restante do sistema apenas como consulta, n\u00e3o podendo fazer altera\u00e7\u00f5es, iclus\u00f5es ou qualquer outra a\u00e7\u00e3o que n\u00e3o seja consulta.<\/p><p dir=\"auto\">Se a permiss\u00e3o for criar, vai poder cadastrar produtos e clientes, e tamb\u00e9m emitir notas, al\u00e9m de poder ter acesso as estat\u00edsticas, por\u00e9m n\u00e3o poder\u00e1 alterar dados existentes, pois para isso \u00e9 necess\u00e1rio a permiss\u00e3o de editar, com exce\u00e7\u00e3o de notas que ainda estejam com status pendente.<\/p><p dir=\"auto\">Se a permiss\u00e3o for editar, ele poder\u00e1 apenas editar os registros e se for criar e editar vai poder criar e editar, mas n\u00e3o poder\u00e1 desligar registros, pois para isso \u00e9 necess\u00e1rio a permiss\u00e3o de excluir.<\/p><p dir=\"auto\">Se a permiss\u00e3o for excluir, ent\u00e3o ele poder\u00e1 tamb\u00e9m desligar registros, e se for criar, editar e excluir ele poder\u00e1 fazer o CRUD completo, apenas n\u00e3o poder\u00e1 setar permiss\u00f5es aos usu\u00e1rios, ou cadastrar funcion\u00e1rios, pois para isso \u00e9 necess\u00e1rio a permiss\u00e3o de ROOT.<\/p><p dir=\"auto\">Caso o usu\u00e1rio tenha permiss\u00e3o de ROOT ele poder\u00e1 setar as permiss\u00f5es para ele mesmo e os demais usu\u00e1rios, portanto se ele tiver a permiss\u00e3o de ROOT ele consegue fazer o que quiser no sistema.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-0847963 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"0847963\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-928c43e\" data-id=\"928c43e\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-be33d44 elementor-widget elementor-widget-heading\" data-id=\"be33d44\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Quanto aos registros de venda (notas fiscais)<\/h4>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7a9e65b elementor-widget elementor-widget-text-editor\" data-id=\"7a9e65b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p dir=\"auto\">Para emitir o registro de venda, o usu\u00e1rio seleciona o funcion\u00e1rio que efetuou a venda e o cliente que fez a compra, e em seguida ele \u00e9 direcionado para a tela onde vai adicionar os itens vendidos. Ap\u00f3s adicionar todos os itens ele tem a op\u00e7\u00e3o de fechar a tela de emiss\u00e3o de notas, e com isso a nota ficaria com status de pendente, pois ela n\u00e3o foi emitida de fato.<\/p><p dir=\"auto\">Enquanto ela estiver pendente \u00e9 considerado que a venda n\u00e3o se realizou ainda, e portanto o usu\u00e1rio pode entrar nela novamente, incluindo ou excluindo produtos, alterando dados da nota, ap\u00f3s o usu\u00e1rio concluir ele deve emitir a nota, e com isso a nota passar\u00e1 pro status de emitida, e passar\u00e1 a constar como registro para as estat\u00edsticas, e a partir disso n\u00e3o ser\u00e1 mais poss\u00edvel fazer nenhuma altera\u00e7\u00e3o na nota, a n\u00e3o ser o seu cancelamento (se o usu\u00e1rio tiver essa permiss\u00e3o).<\/p><p dir=\"auto\">Ao cancelar a nota fiscal o seu status passa para cancelada, seu valor \u00e9 zerado e ela automaticamente n\u00e3o \u00e9 mais considerada nas estat\u00edsticas.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-aac0948 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"aac0948\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5724bed\" data-id=\"5724bed\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-78219f0 elementor-widget elementor-widget-heading\" data-id=\"78219f0\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Quanto as estat\u00edsticas<\/h4>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-10afa47 elementor-widget elementor-widget-text-editor\" data-id=\"10afa47\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p dir=\"auto\">Esse, na minha opini\u00e3o \u00e9 o principal diferencial do sistema em rela\u00e7\u00e3o ao sistema da oficina. Ao entrar na se\u00e7\u00e3o das estat\u00edsticas o usu\u00e1rio dever\u00e1 informar o per\u00edodo o qual ele deseja consultar, ao informar o intervalo de datas ele ter\u00e1 as seguintes op\u00e7\u00f5es de consulta:<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-43088c5 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"43088c5\" data-element_type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Ranking de vendas por cliente<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Ranking de vendas por funcion\u00e1rio<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Ranking de vendas por produto (com pre\u00e7o m\u00e9dio no intervalo consultado)<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1e974b0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1e974b0\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a3a4221\" data-id=\"a3a4221\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-81d40c7 elementor-widget elementor-widget-heading\" data-id=\"81d40c7\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Op\u00e7\u00f5es de consulta de registros<\/h4>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-918e44b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"918e44b\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b18a6df\" data-id=\"b18a6df\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-87fc9b4 elementor-widget elementor-widget-text-editor\" data-id=\"87fc9b4\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p dir=\"auto\">Outro diferencial em rela\u00e7\u00e3o ao projeto da oficina, \u00e9 a quantidade de op\u00e7\u00f5es de consultas de vendas.<\/p><p dir=\"auto\">Op\u00e7\u00f5es de consultas de vendas:<\/p><ul dir=\"auto\"><li>Todas as notas<\/li><li>Todas as notas emitidas<\/li><li>Todas as notas pendentes<\/li><li>Todas as notas canceladas<\/li><li>Notas por data da venda<ul dir=\"auto\"><li>Todas as notas por data de venda<\/li><li>Notas emitidas por data de venda<\/li><li>Notas pendentes por data de venda<\/li><li>Notas canceladas por data de venda<\/li><\/ul><\/li><li>Notas por cliente<ul dir=\"auto\"><li>Todas as notas por cliente<\/li><li>Notas emitidas por cliente<\/li><li>Notas pendentes por cliente<\/li><li>Notas canceladas por cliente<\/li><\/ul><\/li><li>Notas por funcion\u00e1rio<ul dir=\"auto\"><li>Todas as notas por funcion\u00e1rio<\/li><li>Notas emitidas por funcion\u00e1rio<\/li><li>Notas pendentes por funcion\u00e1rio<\/li><li>Notas canceladas por funcion\u00e1rio<\/li><\/ul><\/li><\/ul>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b54b396 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b54b396\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2a63ea9\" data-id=\"2a63ea9\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-bb999a4 elementor-widget elementor-widget-heading\" data-id=\"bb999a4\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Resumo geral do projeto<\/h4>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-53c58c5 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"53c58c5\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-63a2b4f\" data-id=\"63a2b4f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2ddf223 elementor-widget elementor-widget-text-editor\" data-id=\"2ddf223\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"Layout-main\" data-view-component=\"true\"><div id=\"readme\" class=\"Box md js-code-block-container js-code-nav-container js-tagsearch-file Box--responsive\" data-tagsearch-path=\"README.md\" data-tagsearch-lang=\"Markdown\"><div class=\"Box-body px-5 pb-5\" data-target=\"readme-toc.content\"><article class=\"markdown-body entry-content container-lg\"><p dir=\"auto\">Em resumo, podemos ver que esse sistema j\u00e1 foi uma evolu\u00e7\u00e3o em rela\u00e7\u00e3o ao sistema da oficina, pois j\u00e1 possui uma complexidade consider\u00e1vel e grandes evolu\u00e7\u00f5es. Neste projeto consegui explorar bastante a linguagem SQL para fazer as consultas e as estat\u00edsticas do banco de dados, mas o que achei um pouco mais complexo de desenvolver \u00e9 a l\u00f3gica das vendas.<\/p><p dir=\"auto\">Tamb\u00e9m esse sistema foi super importante para exercitar a l\u00f3gica de permiss\u00e3o, do que os usu\u00e1rios podem ou n\u00e3o podem fazer, dependendo de suas permiss\u00f5es, e tamb\u00e9m a l\u00f3gica dos registros de vendas e dos dados para forma\u00e7\u00e3o das estat\u00edsticas.<\/p><p dir=\"auto\">Quem quiser ver como ficou basta baixar esse projeto, e instalar as depend\u00eancias (basicamente pyqt5) e o Python na vers\u00e3o 3.x<\/p><p dir=\"auto\">Para poder cadastrar um usu\u00e1rio e setar suas permiss\u00f5es deve utilizar inicialmente o superusu\u00e1rio ROOT e a senha manager.<\/p><p dir=\"auto\">Para executar o sistema utilize o arquivo padaria.py, que vai abrir a tela de login, onde voc\u00ea poder\u00e1 logar com o superusu\u00e1rio ROOT, cadastrar um usu\u00e1rio, setar suas permiss\u00f5es e em seguida logar novamente com o usu\u00e1rio que voc\u00ea cadastrou e testar para ver como ficou esse meu segundo projeto do Jovem Programador Senac m\u00f3dulo 2.<\/p><\/article><\/div><\/div><\/div>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7b1667e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7b1667e\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fdf9e7b\" data-id=\"fdf9e7b\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-04ba7f0 elementor-button-success elementor-align-center elementor-widget elementor-widget-button\" data-id=\"04ba7f0\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/github.com\/JVwolfart\/PROJETO-PADARIA\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fab fa-github\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Link para este projeto no Github<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Projeto padaria, desenvolvido durante o curso Jovem Programador Senac m\u00f3dulo 2. Utilizando Python, PyQt5, Qt design e banco de dados Sqlite<\/p>\n","protected":false},"author":1,"featured_media":472,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[9,49],"tags":[19,23,22,25,27,24],"aioseo_notices":[],"gutentor_comment":0,"_links":{"self":[{"href":"https:\/\/jvitorwolfart.pinheirasc.com\/index.php\/wp-json\/wp\/v2\/posts\/471"}],"collection":[{"href":"https:\/\/jvitorwolfart.pinheirasc.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jvitorwolfart.pinheirasc.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jvitorwolfart.pinheirasc.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jvitorwolfart.pinheirasc.com\/index.php\/wp-json\/wp\/v2\/comments?post=471"}],"version-history":[{"count":21,"href":"https:\/\/jvitorwolfart.pinheirasc.com\/index.php\/wp-json\/wp\/v2\/posts\/471\/revisions"}],"predecessor-version":[{"id":518,"href":"https:\/\/jvitorwolfart.pinheirasc.com\/index.php\/wp-json\/wp\/v2\/posts\/471\/revisions\/518"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jvitorwolfart.pinheirasc.com\/index.php\/wp-json\/wp\/v2\/media\/472"}],"wp:attachment":[{"href":"https:\/\/jvitorwolfart.pinheirasc.com\/index.php\/wp-json\/wp\/v2\/media?parent=471"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jvitorwolfart.pinheirasc.com\/index.php\/wp-json\/wp\/v2\/categories?post=471"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jvitorwolfart.pinheirasc.com\/index.php\/wp-json\/wp\/v2\/tags?post=471"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}