Advertisement
Guest User

Untitled

a guest
Jun 30th, 2018
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 17.59 KB | None | 0 0
  1. # coding: utf-8
  2. from datetime import datetime
  3. from datetime import timedelta
  4. import mysql.connector
  5.  
  6. print "SISTEMA DE BIBLIOTECA"
  7. print '----------------------------------------'
  8.  
  9. clear = "\n" * 100
  10.  
  11. ###########################################################################
  12. def cadastrarLivros():
  13.     print "Cadastrando Livros\n"
  14.  
  15.     # Recebendo os dados do livro.
  16.     titulo = raw_input("Insira o título do livro: ");
  17.     nome_autor = raw_input("Insira o primeiro nome do autor: ");
  18.     sob_autor = raw_input("Insira o sobrenome do autor: ");
  19.     ano = raw_input("Insira o ano do livro: ");
  20.     editora = raw_input("Insira o nome da editora: ")
  21.     categoria = raw_input("Insira a categoria do livro: ");
  22.     quantidade = input("Insira a quantidade de estoque: ");
  23.  
  24.     # Fazendo a conexão com o mySQL.
  25.     cnx = mysql.connector.connect(user='root', password='', host='localhost', database='bibliotecapython')
  26.     cursor = cnx.cursor()
  27.  
  28.     # Linha de inserção do SQL.
  29.     queryLivros = ("INSERT INTO livros (titulo, quantidade, nome_autor, sob_autor, ano, editora, categoria) "
  30.                    "VALUES (%s, %s, %s, %s, %s, %s, %s)")
  31.  
  32.     # Variáveis.
  33.     dadosLivros = (titulo, quantidade, nome_autor, sob_autor, ano, editora, categoria);
  34.  
  35.     # Executando a query com as variáveis.
  36.     cursor.execute(queryLivros, dadosLivros);
  37.  
  38.     # Enviando para o banco de dados.
  39.     cnx.commit();
  40.  
  41.     # Finalizando o processo e avisando ao usuário.
  42.     cursor.close();
  43.     cnx.close()
  44.  
  45.     print "= Livro cadastrado com sucesso! ="
  46. ###########################################################################
  47.  
  48. ###########################################################################
  49. def cadastrarAlunos():
  50.     print "Cadastrando Alunos\n"
  51.  
  52.     # Recebendo os dados do usuário.
  53.     nomeCompleto = raw_input("Insira o nome completo do aluno: ")
  54.     idade = input("Insira a idade do aluno: ")
  55.     CPF = input("Informe o CPF do aluno: ")
  56.     matricula = raw_input("Informe o número de matrícula do aluno: ")
  57.     senha = raw_input("Informe uma senha para o aluno: ")
  58.     dataDeCadastro = datetime.now()
  59.  
  60.     # Fazendo a conexão com o mySQL.
  61.     cnx = mysql.connector.connect(user='root', password='', host='localhost', database='bibliotecapython')
  62.     cursor = cnx.cursor()
  63.  
  64.     # Query da conta do aluno.
  65.     queryConta = ("INSERT INTO conta (login, senha, tipo) VALUES (%s, %s, %s)")
  66.     dadosConta = (matricula, senha, 2);
  67.  
  68.     # Executando a query com as variáveis.
  69.     cursor.execute(queryConta, dadosConta);
  70.  
  71.     # Enviando para o banco de dados.
  72.     cnx.commit();
  73.  
  74.     # Query pra pegar o ID da conta que acabou de ser cadastrada.
  75.     cursor.execute('SELECT * from conta where login="' + matricula + '"');
  76.     row = cursor.fetchone()
  77.  
  78.     # Pegando o ID da conta.
  79.     contaAlunoID = row[0];
  80.  
  81.     # Linha de inserção do SQL.
  82.     queryAluno = ("INSERT INTO aluno (nomecompleto, idade, cpf, datadecadastro, contaid) VALUES (%s, %s, %s, %s, %s)")
  83.  
  84.     # Variáveis.
  85.     dadosAluno = (nomeCompleto, idade, CPF, dataDeCadastro, contaAlunoID);
  86.  
  87.     # Executando a query com as variáveis.
  88.     cursor.execute(queryAluno, dadosAluno);
  89.  
  90.     # Enviando para o banco de dados.
  91.     cnx.commit();
  92.  
  93.     # Finalizando o processo e avisando ao usuário.
  94.     cursor.close();
  95.     cnx.close()
  96.  
  97.     print clear
  98.  
  99.     print "= Aluno cadastrado com sucesso! ="
  100. ###########################################################################
  101.  
  102. ###########################################################################
  103. def listarAlunos():
  104.     # Criando a conexão com o MySQL.
  105.     cnx = mysql.connector.connect(user='root', password='', host='localhost', database='bibliotecapython')
  106.  
  107.     # Criando um cursor (buffered pois não sei o porque)
  108.     cursor = cnx.cursor(buffered=True);
  109.  
  110.     query = 'SELECT * FROM aluno';
  111.  
  112.     cursor.execute(query);
  113.  
  114.     for aluno in cursor:
  115.         print "================="
  116.         print "Nome Completo: " + aluno[1];
  117.         print "Idade: " + aluno[2];
  118.         print "CPF: " + aluno[3];
  119.         print "Data de Cadastro: " + str(aluno[4]);
  120.  
  121.     cursor.close()
  122.     cnx.close()
  123.     print "================="
  124.     escolha = input("Digite qualquer coisa para voltar: ");
  125.  
  126.     print clear
  127.  
  128. ###########################################################################
  129.  
  130.  
  131. ###########################################################################
  132. def emprestarLivro():
  133.     print "- Livros disponíveis: -"
  134.  
  135.     # Criando a conexão com o MySQL.
  136.     cnx = mysql.connector.connect(user='root', password='', host='localhost', database='bibliotecapython')
  137.  
  138.     # Criando um cursor (buffered pois não sei o porque)
  139.     cursor = cnx.cursor(buffered=True);
  140.  
  141.     cursor.execute("SELECT * FROM livros")
  142.  
  143.     for livro in cursor:
  144.         print "=================";
  145.         print "ID: " + str(livro[0]);
  146.         print "Titulo: " + livro[1];
  147.         print "Nome do Autor: " + livro[3] + " " + livro[4];
  148.         print "Ano: " + livro[5];
  149.         print "Editora: " + livro[6];
  150.         print "Categoria: " + livro[7];
  151.         print "Quantidade Disponível: " + str(livro[2]);
  152.  
  153.     print "=================";
  154.     idLivro = raw_input("Insira o ID do livro que será emprestado: ");
  155.     print clear
  156.  
  157.     cursor.execute("SELECT * FROM aluno");
  158.  
  159.     for aluno in cursor:
  160.         print "================="
  161.         print "ID: " + str(aluno[0])
  162.         print "Nome Completo: " + aluno[1];
  163.         print "Idade: " + aluno[2];
  164.         print "CPF: " + aluno[3];
  165.         print "Data de Cadastro: " + str(aluno[4]);
  166.  
  167.     print "=================";
  168.     idAluno = raw_input("Insira o ID do aluno que terá o livro emprestado: ")
  169.  
  170.     # Linha de inserção do SQL.
  171.     queryEmprestimo = ("INSERT INTO emprestimo (idaluno, idlivro, idadmin, dataemprestimo, dataentrega) VALUES (%s, %s, %s, %s, %s)")
  172.  
  173.     # Variáveis.
  174.     # OBS: DATA DA ENTREGA = DATA ATUAL + 7 DIAS
  175.     dadosEmprestimo = (idAluno, idLivro, contaID, datetime.now(), datetime.now()+ timedelta(days=7));
  176.  
  177.     cursor.execute("select * from livros where id=" + idLivro)
  178.     row = cursor.fetchone();
  179.  
  180.     if (row[2] > 0):
  181.         quantidade = int(row[2]) - 1;
  182.         cursor.execute("update livros set quantidade=" + str(quantidade) + " where id=" + str(idLivro))
  183.         cursor.execute(queryEmprestimo, dadosEmprestimo);
  184.  
  185.         cnx.commit()
  186.         cursor.close()
  187.         cnx.close()
  188.  
  189.         print clear
  190.         print "= Empréstimo realizado com sucesso! ="
  191.     else:
  192.         print clear
  193.         print "= O livro selecionado está fora de estoque ="
  194.  
  195.  
  196. ###########################################################################
  197.  
  198. ###########################################################################
  199. def listarEmprestimos():
  200.     # Criando a conexão com o MySQL.
  201.     cnx = mysql.connector.connect(user='root', password='', host='localhost', database='bibliotecapython')
  202.  
  203.     # Criando um cursor (buffered pois não sei o porque)
  204.     cursor = cnx.cursor(buffered=True);
  205.     cursor2 = cnx.cursor()
  206.  
  207.     cursor.execute("SELECT * FROM emprestimo")
  208.  
  209.     for emprestimo in cursor:
  210.         cursor2.execute("SELECT * from aluno where id=" + str(emprestimo[1]))
  211.         row = cursor2.fetchone()
  212.  
  213.         print "================="
  214.         print "Aluno: " + row[1]
  215.  
  216.         cursor2.execute("SELECT * from livros where id=" + str(emprestimo[2]))
  217.         row = cursor2.fetchone()
  218.  
  219.         print "Livro: " + row[1]
  220.         print "Data de Empréstimo: " + str(emprestimo[4])
  221.         print "Data de Entrega: " + str(emprestimo[5])
  222.  
  223.         cursor2.execute("SELECT * from admin where id=" + str(emprestimo[3]))
  224.         row = cursor2.fetchone()
  225.  
  226.         print "Administrador Responsavel: " + row[1]
  227.  
  228.         if (datetime.now() > emprestimo[5]):
  229.             print "SITUAÇÃO: Entrega atrasada!";
  230.         elif (datetime.now() < emprestimo[5]):
  231.             print "SITUAÇÃO: Normal.";
  232.         else:
  233.             print "SITUAÇÃO: O livro deve ser entregue hoje!"
  234.  
  235.         print "================="
  236.         input("Insira qualquer coisa para continuar: ")
  237.         print clear
  238.  
  239. ###########################################################################
  240.  
  241. ###########################################################################
  242. def listarLivros():
  243.     # Criando a conexão com o MySQL.
  244.     cnx = mysql.connector.connect(user='root', password='', host='localhost', database='bibliotecapython')
  245.  
  246.     # Criando um cursor (buffered pois não sei o porque)
  247.     cursor = cnx.cursor(buffered=True);
  248.  
  249.     cursor.execute("SELECT * from livros")
  250.  
  251.     for livro in cursor:
  252.         print "=================";
  253.         print "ID: " + str(livro[0]);
  254.         print "Titulo: " + livro[1];
  255.         print "Nome do Autor: " + livro[3] + " " + livro[4];
  256.         print "Ano: " + livro[5];
  257.         print "Editora: " + livro[6];
  258.         print "Categoria: " + livro[7];
  259.         print "Quantidade Disponível: " + str(livro[2]);
  260.  
  261.     print "=================";
  262.     raw_input("Insira qualquer coisa para retornar: ");
  263.     print clear
  264.  
  265. ###########################################################################
  266.  
  267. ###########################################################################
  268. def alunoListarEmprestimos():
  269.     cnx = mysql.connector.connect(user='root', password='', host='localhost', database='bibliotecapython')
  270.  
  271.     cursor = cnx.cursor();
  272.     cursor2 = cnx.cursor();
  273.  
  274.     cursor.execute("select * from emprestimo where idaluno=" + str(alunoID))
  275.  
  276.     for emprestimo in cursor:
  277.         print "================="
  278.         cursor2.execute("SELECT * from livros where id=" + str(emprestimo[2]))
  279.         row = cursor2.fetchone()
  280.  
  281.         print "Livro: " + row[1]
  282.         print "Data de Empréstimo: " + str(emprestimo[4])
  283.         print "Data de Entrega: " + str(emprestimo[5])
  284.  
  285.         cursor2.execute("SELECT * from admin where id=" + str(emprestimo[3]))
  286.         row = cursor2.fetchone()
  287.  
  288.         print "Administrador Responsavel: " + row[1]
  289.  
  290.         if (datetime.now() > emprestimo[5]):
  291.             print "SITUAÇÃO: Entrega atrasada!";
  292.         elif (datetime.now() < emprestimo[5]):
  293.             print "SITUAÇÃO: Normal.";
  294.         else:
  295.             print "SITUAÇÃO: O livro deve ser entregue hoje!"
  296.  
  297.     print "================="
  298.     input("Insira qualquer coisa para continuar: ")
  299.     cursor.close()
  300.     cursor2.close()
  301.     cnx.close()
  302.     print clear
  303. ###########################################################################
  304.  
  305. ###########################################################################
  306. def devolverLivros():
  307.     cnx = mysql.connector.connect(user='root', password='', host='localhost', database='bibliotecapython')
  308.  
  309.     cursor = cnx.cursor(buffered=True);
  310.     cursor2 = cnx.cursor(buffered=True);
  311.  
  312.     cursor.execute("select * from emprestimo where idaluno=" + str(alunoID))
  313.  
  314.     for emprestimo in cursor:
  315.         print "================="
  316.         cursor2.execute("SELECT * from livros where id=" + str(emprestimo[2]))
  317.         row = cursor2.fetchone()
  318.  
  319.         print "ID: " + str(emprestimo[0])
  320.         print "Livro: " + row[1]
  321.         print "Data de Empréstimo: " + str(emprestimo[4])
  322.         print "Data de Entrega: " + str(emprestimo[5])
  323.  
  324.         cursor2.execute("SELECT * from admin where id=" + str(emprestimo[3]))
  325.         row = cursor2.fetchone()
  326.  
  327.         print "Administrador Responsavel: " + row[1]
  328.  
  329.         if (datetime.now() > emprestimo[5]):
  330.             print "SITUAÇÃO: Entrega atrasada!";
  331.         elif (datetime.now() < emprestimo[5]):
  332.             print "SITUAÇÃO: Normal.";
  333.         else:
  334.             print "SITUAÇÃO: O livro deve ser entregue hoje!"
  335.  
  336.     print "================="
  337.     emprestimoId = raw_input("Selecione o ID do emprestimo à ser devolvido: ");
  338.  
  339.     cursor.execute("select * from emprestimo where id=" + emprestimoId)
  340.     row = cursor.fetchone();
  341.  
  342.     livroID = row[2];
  343.  
  344.     cursor.execute("select * from livros where id=" + str(livroID));
  345.     row = cursor.fetchone();
  346.  
  347.     quantidade = row[2] + 1;
  348.  
  349.     cursor.execute("update livros set quantidade=" + str(quantidade) + " where id=" + str(livroID))
  350.  
  351.     cursor.execute("delete from emprestimo where id=" + emprestimoId);
  352.  
  353.     cnx.commit()
  354.     cursor.close()
  355.     cursor2.close()
  356.     cnx.close()
  357.  
  358.     print clear
  359.     print "= Empréstimo devolvido com sucesso! ="
  360. ######################################################################################
  361.  
  362. # Recebendo os dados do usuário.
  363. print clear
  364. loginUser = raw_input("Insira o seu login: ")
  365. senhaUser = raw_input("Insira sua senha: ")
  366. tipo = 0;
  367.  
  368. loginUser = loginUser;
  369.  
  370. # Criando a conexão com o MySQL.
  371. cnx = mysql.connector.connect(user='root', password='', host='localhost', database='bibliotecapython')
  372.  
  373. # Criando um cursor (buffered pois não sei o porque)
  374. cursor = cnx.cursor(buffered=True);
  375.  
  376. cursor.execute('SELECT * FROM conta where login="' + loginUser + '"');
  377.  
  378. contaID = 0;
  379.  
  380. # Caso exista alguma conta com esse login.
  381. if (cursor.rowcount > 0):
  382.     row = cursor.fetchone()
  383.     # Caso a senha esteja correta.
  384.     if (senhaUser == row[2]):
  385.         # Caso o tipo da conta seja administrador.
  386.         if (row[3] == 1):
  387.             # Pegando o ID da conta para pegar os dados do admin.
  388.             contaID = row[0];
  389.  
  390.             query = 'SELECT * FROM admin where contaid=' + str(contaID) + '';
  391.  
  392.             cursor.execute(query);
  393.             row = cursor.fetchone();
  394.  
  395.             # "Limpando" o console.
  396.             print clear
  397.  
  398.             print "\nVocê está logado com sucesso! -", row[1];
  399.             print "---------------------------------------"
  400.  
  401.             # Variável de escolha.
  402.             escolha = 9999
  403.  
  404.             while (escolha != 0):
  405.                 # Sistema de escolhas.
  406.                 print "Escolha uma opção:"
  407.                 print "1 - Cadastrar Livros"
  408.                 print "2 - Cadastrar Alunos"
  409.                 print "3 - Listar Alunos"
  410.                 print "4 - Emprestar Livros"
  411.                 print "5 - Listar Empréstimos de Livros"
  412.                 print "6 - Listar Livros"
  413.                 print "0 - Cancelar"
  414.  
  415.                 escolha = input("Escolha: ")
  416.  
  417.                 # Caso o usuário escolha cadastrar livros.
  418.                 if (escolha == 1):
  419.  
  420.                     print "--------------------------------------"
  421.                     print clear
  422.                     cadastrarLivros()
  423.                     print "--------------------------------------"
  424.  
  425.                 # Caso o usuário escolha cadastrar usuários.
  426.                 elif (escolha == 2):
  427.  
  428.                     print "--------------------------------------"
  429.                     print clear
  430.                     cadastrarAlunos()
  431.                     print "---------------------------------------"
  432.  
  433.                 # Caso o usuário escolha listar os usuários cadastrados.
  434.                 elif (escolha == 3):
  435.  
  436.                     print clear
  437.                     listarAlunos()
  438.                     print "--------------------------------------"
  439.  
  440.                 # Caso o usuário escolha alocar um livro.
  441.                 elif (escolha == 4):
  442.  
  443.                     print clear
  444.                     emprestarLivro()
  445.                     print "--------------------------------------"
  446.  
  447.                 # Caso o usuário escolha listar as locações.
  448.                 elif (escolha == 5):
  449.  
  450.                     print clear
  451.                     listarEmprestimos()
  452.                     print "--------------------------------------"
  453.  
  454.                 # Caso o usuário escolha listar os livros.
  455.                 elif (escolha == 6):
  456.  
  457.                     print clear
  458.                     listarLivros()
  459.                     print "--------------------------------------"
  460.  
  461.                 # Caso o usuário selecione sair do app.
  462.                 elif (escolha == 0):
  463.                     print clear
  464.                     cursor.close();
  465.                     cnx.close()
  466.  
  467.         # Se o usuário for um aluno.
  468.         elif(row[3] == 2):
  469.             # Pegando o ID da conta para pegar os dados do admin.
  470.             contaID = row[0];
  471.  
  472.             query = 'SELECT * FROM aluno where contaid=' + str(contaID) + '';
  473.  
  474.             cursor.execute(query);
  475.             row = cursor.fetchone();
  476.  
  477.             # Usaremos esse ID em alguns métodos.
  478.             alunoID = row[0];
  479.  
  480.             print clear
  481.  
  482.             print "\nVocê está logado com sucesso! -", row[1];
  483.             print "---------------------------------------"
  484.  
  485.             # Variável de escolha.
  486.             escolha = 9999
  487.  
  488.             while (escolha != 0):
  489.                 # Sistema de escolhas.
  490.                 print "Escolha uma opção:"
  491.                 print "1 - Listar Empréstimos de Livros"
  492.                 print "2 - Devolver Livros"
  493.                 print "0 - Cancelar"
  494.  
  495.                 escolha = input("Escolha: ")
  496.  
  497.                 # Caso o aluno escolha listar os empréstimos de livros.
  498.                 if (escolha == 1):
  499.  
  500.                     print clear
  501.                     alunoListarEmprestimos()
  502.                     print "--------------------------------------"
  503.  
  504.                 # Caso o usuário escolha devolver livros.
  505.                 elif (escolha == 2):
  506.  
  507.                     print clear
  508.                     devolverLivros()
  509.                     print "--------------------------------------"
  510.  
  511.                 elif (escolha == 0):
  512.                     print clear
  513.                     cursor.close();
  514.                     cnx.close()
  515.     else:
  516.         print "\nSua senha está incorreta."
  517.         print "----------------------------------"
  518. else:
  519.     print "\nSeu e-mail não está cadastrado."
  520.     print "--------------------------------------"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement