├── controleglobal.cpp ├── controle.desktop ├── README.md ├── controleglobal.h ├── dateformatdelegate.cpp ├── analisevendas.h ├── .gitignore ├── modopagtodelegate.h ├── formatcolumndelegate.cpp ├── numberformatdelegate.cpp ├── numberformatdelegate.ui ├── formatcolumndelegate.h ├── numberformatdelegate.h ├── dateformatdelegate.h ├── timeformatdelegate.h ├── timeformatdelegate.cpp ├── jobfunctioncolumndelegate.h ├── jobfunctioncolumndelegate.cpp ├── main.cpp ├── modopagtodelegate.cpp ├── constants.h ├── menu.h ├── analisevendas.ui ├── userinfo.h ├── principal.h ├── login.h ├── .travis.yml ├── precoentrega.h ├── analisevendas.cpp ├── ligarcardapio.ui ├── produto.h ├── login.cpp ├── Controle.pro ├── preco.h ├── cardapio.h ├── endereco.h ├── entrega.h ├── estabelecimento.h ├── ligarcardapio.h ├── entrega.ui ├── cliente.h ├── cardapio.ui ├── principal.cpp ├── ligarcardapio.cpp ├── condominio.h ├── submenu.h ├── login.ui ├── precoentrega.cpp ├── menu.ui ├── userinfo.ui ├── userinfo.cpp ├── precoentrega.ui ├── submenu.ui ├── pedidos.ui ├── preco.ui ├── cardapio.cpp ├── condominio.ui ├── estabelecimento.cpp ├── submenu.cpp ├── condominio.cpp ├── pedidos.h ├── menu.cpp ├── entrega.cpp ├── principal.ui ├── preco.cpp └── endereco.cpp /controleglobal.cpp: -------------------------------------------------------------------------------- 1 | #include "controleglobal.h" 2 | 3 | ControleGlobal::ControleGlobal() 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /controle.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Name=Controle 4 | Exec=Controle 5 | Icon=controle 6 | Categories=Utility; 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Controle [![Build Status](https://travis-ci.org/probonopd/Controle.svg?branch=master)](https://travis-ci.org/probonopd/Controle) 2 | 3 | From https://github.com/probonopd/linuxdeployqt/issues/143#issuecomment-313807628 4 | -------------------------------------------------------------------------------- /controleglobal.h: -------------------------------------------------------------------------------- 1 | #ifndef CONTROLEGLOBAL_H 2 | #define CONTROLEGLOBAL_H 3 | 4 | #include 5 | #include 6 | 7 | 8 | class ControleGlobal 9 | { 10 | public: 11 | ControleGlobal(); 12 | }; 13 | 14 | #endif // CONTROLEGLOBAL_H 15 | -------------------------------------------------------------------------------- /dateformatdelegate.cpp: -------------------------------------------------------------------------------- 1 | #include "dateformatdelegate.h" 2 | 3 | DateFormatDelegate::DateFormatDelegate(QObject *parent) : 4 | QStyledItemDelegate(parent) 5 | { 6 | } 7 | 8 | QString DateFormatDelegate::displayText(const QVariant &value, const QLocale &locale) const 9 | { 10 | QDateTime ts; 11 | 12 | ts.setTime_t(value.toInt()); 13 | 14 | return ts.toString("dd/MM/yy"); 15 | } 16 | -------------------------------------------------------------------------------- /analisevendas.h: -------------------------------------------------------------------------------- 1 | #ifndef ANALISEVENDAS_H 2 | #define ANALISEVENDAS_H 3 | 4 | #include 5 | 6 | namespace Ui { 7 | class AnaliseVendas; 8 | } 9 | 10 | class AnaliseVendas : public QDialog 11 | { 12 | Q_OBJECT 13 | 14 | public: 15 | explicit AnaliseVendas(QWidget *parent = 0); 16 | ~AnaliseVendas(); 17 | 18 | private: 19 | Ui::AnaliseVendas *ui; 20 | }; 21 | 22 | #endif // ANALISEVENDAS_H 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | *.d 3 | 4 | # Compiled Object files 5 | *.slo 6 | *.lo 7 | *.o 8 | *.obj 9 | 10 | # Precompiled Headers 11 | *.gch 12 | *.pch 13 | 14 | # Compiled Dynamic libraries 15 | *.so 16 | *.dylib 17 | *.dll 18 | 19 | # Fortran module files 20 | *.mod 21 | *.smod 22 | 23 | # Compiled Static libraries 24 | *.lai 25 | *.la 26 | *.a 27 | *.lib 28 | 29 | # Executables 30 | *.exe 31 | *.out 32 | *.app 33 | -------------------------------------------------------------------------------- /modopagtodelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef MODOPAGTODELEGATE_H 2 | #define MODOPAGTODELEGATE_H 3 | 4 | #include 5 | 6 | class ModoPagtoDelegate : public QStyledItemDelegate 7 | { 8 | Q_OBJECT 9 | public: 10 | explicit ModoPagtoDelegate(QObject *parent = 0); 11 | virtual QString displayText(const QVariant &value, const QLocale &locale) const; 12 | 13 | signals: 14 | 15 | public slots: 16 | 17 | }; 18 | #endif // MODOPAGTODELEGATE_H 19 | -------------------------------------------------------------------------------- /formatcolumndelegate.cpp: -------------------------------------------------------------------------------- 1 | #include "formatcolumndelegate.h" 2 | 3 | FormatColumnDelegate::FormatColumnDelegate(QObject *parent) : 4 | QStyledItemDelegate(parent) 5 | { 6 | } 7 | 8 | QString FunctionColumnDelegate::displayText(const QVariant &value, const QLocale &locale) const 9 | { 10 | if(value.toString()=="") 11 | return ""; 12 | QString formattedNum = locale.toString(value.toDouble(), 'f', 2); 13 | return formattedNum; 14 | } 15 | -------------------------------------------------------------------------------- /numberformatdelegate.cpp: -------------------------------------------------------------------------------- 1 | #include "numberformatdelegate.h" 2 | 3 | NumberFormatDelegate::NumberFormatDelegate(QObject *parent) : 4 | QStyledItemDelegate(parent) 5 | { 6 | } 7 | 8 | QString NumberFormatDelegate::displayText(const QVariant &value, const QLocale &locale) const 9 | { 10 | if(value.toString()=="") 11 | return ""; 12 | QString formattedNum = locale.toString(value.toDouble(), 'f', 2); 13 | return formattedNum; 14 | } 15 | -------------------------------------------------------------------------------- /numberformatdelegate.ui: -------------------------------------------------------------------------------- 1 | 2 | NumberFormatDelegate 3 | 4 | 5 | 6 | 0 7 | 0 8 | 400 9 | 300 10 | 11 | 12 | 13 | Dialog 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /formatcolumndelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef FORMATCOLUMNDELEGATE_H 2 | #define FORMATCOLUMNDELEGATE_H 3 | 4 | #include 5 | 6 | class FormatColumnDelegate : public QStyledItemDelegate 7 | { 8 | Q_OBJECT 9 | public: 10 | xplicit FunctionColumnDelegate(QObject *parent = 0); 11 | virtual QString displayText(const QVariant &value, const QLocale &locale) const; 12 | 13 | signals: 14 | 15 | public slots: 16 | 17 | }; 18 | 19 | #endif // FORMATCOLUMNDELEGATE_H 20 | -------------------------------------------------------------------------------- /numberformatdelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef NUMBERFORMATDELEGATE_H 2 | #define NUMBERFORMATDELEGATE_H 3 | 4 | #include 5 | 6 | class NumberFormatDelegate : public QStyledItemDelegate 7 | { 8 | Q_OBJECT 9 | public: 10 | explicit NumberFormatDelegate(QObject *parent = 0); 11 | virtual QString displayText(const QVariant &value, const QLocale &locale) const; 12 | 13 | signals: 14 | 15 | public slots: 16 | 17 | }; 18 | 19 | #endif // NUMBERFORMATDELEGATE_H@ 20 | -------------------------------------------------------------------------------- /dateformatdelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef DATEFORMATDELEGATE_H 2 | #define DATEFORMATDELEGATE_H 3 | 4 | #include 5 | #include 6 | 7 | class DateFormatDelegate : public QStyledItemDelegate 8 | { 9 | Q_OBJECT 10 | public: 11 | explicit DateFormatDelegate(QObject *parent = 0 ); 12 | virtual QString displayText(const QVariant &value, const QLocale &locale) const; 13 | 14 | signals: 15 | 16 | public slots: 17 | 18 | }; 19 | #endif // DATEFORMATDELEGATE_H 20 | -------------------------------------------------------------------------------- /timeformatdelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef TIMEFORMATDELEGATE_H 2 | #define TIMEFORMATDELEGATE_H 3 | 4 | #include 5 | #include 6 | 7 | class TimeFormatDelegate : public QStyledItemDelegate 8 | { 9 | Q_OBJECT 10 | public: 11 | explicit TimeFormatDelegate(QObject *parent = 0); 12 | virtual QString displayText(const QVariant &value, const QLocale &locale) const; 13 | 14 | signals: 15 | 16 | public slots: 17 | 18 | }; 19 | #endif // TIMEFORMATDELEGATE_H 20 | -------------------------------------------------------------------------------- /timeformatdelegate.cpp: -------------------------------------------------------------------------------- 1 | #include "timeformatdelegate.h" 2 | 3 | TimeFormatDelegate::TimeFormatDelegate(QObject *parent) : 4 | QStyledItemDelegate(parent) 5 | { 6 | } 7 | 8 | QString TimeFormatDelegate::displayText(const QVariant &value, const QLocale &locale) const 9 | { 10 | int current = QDateTime::currentDateTime().toTime_t(); 11 | 12 | int hora=(current - value.toInt())/60; 13 | QString formattedTime = QString("%1").arg(hora); 14 | return formattedTime; 15 | } 16 | -------------------------------------------------------------------------------- /jobfunctioncolumndelegate.h: -------------------------------------------------------------------------------- 1 | #ifndef JOBFUNCTIONCOLUMNDELEGATE_H 2 | #define JOBFUNCTIONCOLUMNDELEGATE_H 3 | 4 | #include 5 | 6 | class JobFunctionColumnDelegate : public QStyledItemDelegate 7 | { 8 | Q_OBJECT 9 | public: 10 | explicit JobFunctionColumnDelegate(QObject *parent = 0); 11 | virtual QString displayText(const QVariant &value, const QLocale &locale) const; 12 | 13 | signals: 14 | 15 | public slots: 16 | 17 | }; 18 | #endif // JOBFUNCTIONCOLUMNDELEGATE_H 19 | -------------------------------------------------------------------------------- /jobfunctioncolumndelegate.cpp: -------------------------------------------------------------------------------- 1 | #include "jobfunctioncolumndelegate.h" 2 | 3 | #include "constants.h" 4 | 5 | extern QString funcao[NFUNC]; //={"ADMIN","GERENTE","CAIXA", "GARÇOM", "ENTREGADOR", "COZINHA"}; 6 | 7 | JobFunctionColumnDelegate::JobFunctionColumnDelegate(QObject *parent) : 8 | QStyledItemDelegate(parent) 9 | { 10 | } 11 | 12 | QString JobFunctionColumnDelegate::displayText(const QVariant &value, const QLocale &locale) const 13 | { 14 | return funcao[value.toInt()-1]; 15 | } 16 | -------------------------------------------------------------------------------- /main.cpp: -------------------------------------------------------------------------------- 1 | #include "controleglobal.h" 2 | #include "login.h" 3 | #include 4 | 5 | #include "constants.h" 6 | 7 | QString user_logado, user_status, user_nome; 8 | int user_id=0, config=0, user_tipo; 9 | QString funcao[NFUNC]={"ADMIN","GERENTE","CAIXA", "GARÇOM", "ENTREGADOR", "COZINHA"}; 10 | QString modo_pag[NPAG]={"DINHEIRO","CHEQUE","CARTÃO", "FIADO"}; 11 | 12 | int main(int argc, char *argv[]) 13 | { 14 | QApplication a(argc, argv); 15 | Login w; 16 | ControleGlobal MyGlobal; 17 | 18 | w.show(); 19 | 20 | return a.exec(); 21 | } 22 | -------------------------------------------------------------------------------- /modopagtodelegate.cpp: -------------------------------------------------------------------------------- 1 | #include "modopagtodelegate.h" 2 | #include "constants.h" 3 | 4 | extern QString modo_pag[NPAG]; 5 | 6 | ModoPagtoDelegate::ModoPagtoDelegate(QObject *parent) : 7 | QStyledItemDelegate(parent) 8 | { 9 | } 10 | 11 | QString ModoPagtoDelegate::displayText(const QVariant &value, const QLocale &locale) const 12 | { 13 | QString str; 14 | 15 | switch (value.toInt()) { 16 | case PAG_DINHEIRO: 17 | str=modo_pag[IDX_DINHEIRO]; 18 | break; 19 | case PAG_CARTAO: 20 | str=modo_pag[IDX_CARTAO]; 21 | break; 22 | case PAG_FIADO: 23 | str=modo_pag[IDX_FIADO]; 24 | break; 25 | case PAG_CHEQUE: 26 | str=modo_pag[IDX_CHEQUE]; 27 | break; 28 | } 29 | 30 | return str; 31 | } 32 | -------------------------------------------------------------------------------- /constants.h: -------------------------------------------------------------------------------- 1 | #ifndef CONSTANTS_H 2 | #define CONSTANTS_H 3 | 4 | #define NFUNC 6 5 | 6 | #define MENU 1 7 | #define ADICIONAL 2 8 | #define OPCIONAL 4 9 | 10 | #define F_ADMIN 1 11 | #define F_GERENTE 2 12 | #define F_CAIXA 3 13 | #define F_GARCOM 4 14 | #define F_ENTREGA 5 15 | #define F_COZINHA 6 16 | 17 | //STATUS DE PEDIDO 18 | #define ST_ENTRADA 0 19 | #define ST_PREPARO 1 20 | #define ST_PRONTO 2 21 | #define ST_ENTREGUE 3 22 | 23 | // ENTREGA 24 | #define ENTREGA 0 // bit 0 > 0-ABS 1-PERCENTUAL 25 | #define SELECOES 1 // bit 1 > 0-MAIOR VALOR 1-MEDIA 26 | 27 | // MODO DE PAGAMENTO 28 | #define NPAG 4 29 | 30 | #define PAG_DINHEIRO 1 31 | #define PAG_CARTAO 2 32 | #define PAG_CHEQUE 4 33 | #define PAG_FIADO 8 34 | 35 | #define IDX_DINHEIRO 0 36 | #define IDX_CHEQUE 1 37 | #define IDX_CARTAO 2 38 | #define IDX_FIADO 3 39 | 40 | #endif // CONSTANTS_H 41 | -------------------------------------------------------------------------------- /menu.h: -------------------------------------------------------------------------------- 1 | #ifndef MENU_H 2 | #define MENU_H 3 | 4 | #include 5 | #include "login.h" 6 | 7 | namespace Ui { 8 | class Menu; 9 | } 10 | 11 | class Menu : public QDialog 12 | { 13 | Q_OBJECT 14 | 15 | public: 16 | explicit Menu(QWidget *parent = 0); 17 | ~Menu(); 18 | 19 | void lermenu(){ 20 | querymenu->prepare("select * from menu"); 21 | querymenu->exec(); 22 | modalmenu->setQuery(*querymenu); 23 | } 24 | 25 | private slots: 26 | void on_pushButton_cancelar_clicked(); 27 | 28 | void on_pushButton_novo_clicked(); 29 | 30 | void on_pushButton_atualizar_clicked(); 31 | 32 | void on_radioButton_menu_clicked(); 33 | 34 | void on_radioButton_adicional_clicked(); 35 | 36 | void on_radioButton_opcional_clicked(); 37 | 38 | void on_pushButton_apagar_clicked(); 39 | 40 | void on_tableWidget_menu_activated(const QModelIndex &index); 41 | 42 | private: 43 | Ui::Menu *ui; 44 | Login conn; 45 | QSqlQueryModel *modalmenu; 46 | QSqlQuery *querymenu; 47 | int id_menu=0, opcoes; 48 | }; 49 | 50 | #endif // MENU_H 51 | -------------------------------------------------------------------------------- /analisevendas.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | AnaliseVendas 4 | 5 | 6 | 7 | 0 8 | 0 9 | 702 10 | 429 11 | 12 | 13 | 14 | Dialog 15 | 16 | 17 | 18 | 19 | 10 20 | 20 21 | 681 22 | 401 23 | 24 | 25 | 26 | 0 27 | 28 | 29 | 30 | Resultado do dia 31 | 32 | 33 | 34 | 35 | Mês Corrente 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /userinfo.h: -------------------------------------------------------------------------------- 1 | #ifndef USERINFO_H 2 | #define USERINFO_H 3 | 4 | #include 5 | #include "constants.h" 6 | #include "login.h" 7 | #include "jobfunctioncolumndelegate.h" 8 | 9 | extern QString funcao[NFUNC]; 10 | 11 | namespace Ui { 12 | class Userinfo; 13 | } 14 | 15 | class Userinfo : public QDialog 16 | { 17 | Q_OBJECT 18 | 19 | public: 20 | explicit Userinfo(QWidget *parent = 0); 21 | ~Userinfo(); 22 | 23 | void lerusuario(){ 24 | queryuser->prepare("select * from usuario where nome like :filtro"); 25 | queryuser->bindValue( ":filtro", "%"+filtro+"%" ); 26 | queryuser->exec(); 27 | modeluser->setQuery(*queryuser); 28 | 29 | qDebug()<lastError().text(); 30 | } 31 | 32 | 33 | private slots: 34 | void on_pushButton_save_clicked(); 35 | 36 | void on_tableView_activated(const QModelIndex &index); 37 | 38 | void on_pushButton_delete_clicked(); 39 | 40 | void on_comboBox_funcao_activated(const QString &arg1); 41 | 42 | void on_pushButton_limpar_clicked(); 43 | 44 | private: 45 | Ui::Userinfo *ui; 46 | Login conn; 47 | QSqlQuery *queryuser; 48 | QSqlQueryModel *modeluser; 49 | QString filtro=""; 50 | int id_user=0, index_funcao; 51 | }; 52 | 53 | #endif // USERINFO_H 54 | -------------------------------------------------------------------------------- /principal.h: -------------------------------------------------------------------------------- 1 | #ifndef PRINCIPAL_H 2 | #define PRINCIPAL_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | namespace Ui { 9 | class Principal; 10 | } 11 | 12 | class Principal : public QDialog 13 | { 14 | Q_OBJECT 15 | 16 | public: 17 | explicit Principal(QWidget *parent = 0); 18 | ~Principal(); 19 | 20 | private slots: 21 | void on_pushButton_clicked(); 22 | 23 | void on_pushButton_configloja_clicked(); 24 | 25 | void on_pushButton_cadastrocliente_clicked(); 26 | 27 | void on_pushButton_cadastroendereco_clicked(); 28 | 29 | void on_pushButton_produto_clicked(); 30 | 31 | void on_pushButton_precoitem_clicked(); 32 | 33 | void on_pushButton_cadastrarmenu_clicked(); 34 | 35 | void on_pushButton_montarcardapio_clicked(); 36 | 37 | void on_pushButton_venda_clicked(); 38 | 39 | void on_pushButton_submenu_clicked(); 40 | 41 | void on_pushButton_entrega_clicked(); 42 | 43 | void on_pushButton_condominio_clicked(); 44 | 45 | void on_pushButton_pedidos_clicked(); 46 | 47 | void on_pushButton_precosentrega_clicked(); 48 | 49 | void on_pushButton_ligar_clicked(); 50 | 51 | void on_pushButton_analisevendas_clicked(); 52 | 53 | private: 54 | Ui::Principal *ui; 55 | }; 56 | 57 | #endif // PRINCIPAL_H 58 | -------------------------------------------------------------------------------- /login.h: -------------------------------------------------------------------------------- 1 | #ifndef LOGIN_H 2 | #define LOGIN_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | #include "constants.h" 10 | #include "controleglobal.h" 11 | 12 | extern ControleGlobal MyGlobal; 13 | 14 | namespace Ui { 15 | class Login; 16 | } 17 | 18 | class Login : public QMainWindow 19 | { 20 | Q_OBJECT 21 | 22 | public: 23 | QSqlDatabase mydb; 24 | 25 | void connClose(){ 26 | mydb.close(); 27 | mydb.removeDatabase(QSqlDatabase::defaultConnection); 28 | } 29 | 30 | bool connOpen(){ 31 | 32 | mydb=QSqlDatabase::addDatabase("QMYSQL"); 33 | mydb.setDatabaseName("controle_restaurante"); 34 | 35 | mydb.setHostName("localhost"); 36 | mydb.setPort(3306); 37 | mydb.setUserName("root"); 38 | mydb.setPassword("ncc1701"); 39 | 40 | if(!mydb.open()){ 41 | qDebug() << "Falha ao conectar ao DataBase"; 42 | return false; 43 | } 44 | else{ 45 | qDebug() << ("Conectado..."); 46 | return true; 47 | } 48 | 49 | } 50 | 51 | public: 52 | explicit Login(QWidget *parent = 0); 53 | ~Login(); 54 | 55 | private slots: 56 | void on_pushButton_login_clicked(); 57 | 58 | private: 59 | Ui::Login *ui; 60 | }; 61 | 62 | #endif // LOGIN_H 63 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: cpp 2 | compiler: gcc 3 | sudo: require 4 | dist: trusty 5 | 6 | before_install: 7 | - sudo add-apt-repository ppa:beineri/opt-qt59-trusty -y 8 | - sudo apt-get update -qq 9 | 10 | install: 11 | - sudo apt-get -y install qt59base 12 | - source /opt/qt*/bin/qt*-env.sh 13 | 14 | script: 15 | - qmake PREFIX=/usr 16 | - make -j$(nproc) 17 | - # Dear upstream developer, please support this: make INSTALL_ROOT=appdir install ; find appdir/ 18 | - mkdir -p appdir/usr/bin 19 | - cp Controle appdir/usr/bin/ 20 | - mkdir -p appdir/usr/share/{applications,pixmaps} 21 | - touch appdir/usr/share/pixmaps/controle.png # Dear upstream developer, please provide an icon 22 | - cp controle.desktop appdir/usr/share/applications/ 23 | - wget -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" 24 | - chmod a+x linuxdeployqt*.AppImage 25 | - unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH 26 | - ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -bundle-non-qt-libs 27 | - ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -appimage 28 | - find ./appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq 29 | - curl --upload-file ./Controle*.AppImage https://transfer.sh/Controle-git.$(git rev-parse --short HEAD)-x86_64.AppImage 30 | -------------------------------------------------------------------------------- /precoentrega.h: -------------------------------------------------------------------------------- 1 | #ifndef PRECOENTREGA_H 2 | #define PRECOENTREGA_H 3 | 4 | #include 5 | #include "login.h" 6 | #include "numberformatdelegate.h" 7 | 8 | namespace Ui { 9 | class PrecoEntrega; 10 | } 11 | 12 | class PrecoEntrega : public QDialog 13 | { 14 | Q_OBJECT 15 | 16 | void leentrega(QString filtro){ 17 | queryentrega->prepare("select entrega.id_entrega, entrega.bai_nu_sequencial, entrega.loc_nu_sequencial, log_bairro.bai_no, \ 18 | log_localidade.loc_nosub, entrega.valor, entrega.percentual, entrega.extra from entrega\ 19 | INNER JOIN log_bairro ON entrega.bai_nu_sequencial=log_bairro.bai_nu_sequencial \ 20 | INNER JOIN log_localidade ON entrega.loc_nu_sequencial=log_localidade.loc_nu_sequencial \ 21 | WHERE (log_bairro.bai_no like :filtro) "); 22 | queryentrega->bindValue(":filtro", "%" + filtro + "%" ); 23 | queryentrega->exec(); 24 | modalentrega->setQuery(*queryentrega); 25 | } 26 | 27 | public: 28 | explicit PrecoEntrega(QWidget *parent = 0); 29 | ~PrecoEntrega(); 30 | 31 | private slots: 32 | void on_pushButton_procurar_clicked(); 33 | 34 | void on_tableView_entrega_activated(const QModelIndex &index); 35 | 36 | void on_pushButton_gravar_clicked(); 37 | 38 | private: 39 | Ui::PrecoEntrega *ui; 40 | Login conn; 41 | 42 | QSqlQueryModel *modalentrega; 43 | QSqlQuery *queryentrega; 44 | QString filtro=""; 45 | int id_entrega=0; 46 | 47 | }; 48 | 49 | #endif // PRECOENTREGA_H 50 | -------------------------------------------------------------------------------- /analisevendas.cpp: -------------------------------------------------------------------------------- 1 | #include "analisevendas.h" 2 | #include "ui_analisevendas.h" 3 | #include 4 | #include "qdebug.h" 5 | 6 | AnaliseVendas::AnaliseVendas(QWidget *parent) : 7 | QDialog(parent), 8 | ui(new Ui::AnaliseVendas) 9 | { 10 | ui->setupUi(this); 11 | /* 12 | uint current = QDateTime::currentDateTime().toTime_t(); 13 | 14 | QDateTime dateTime = QDateTime::fromString("1.30.1", "dd.MM.yy"); 15 | 16 | QString teste=dateTime.toString("dd/MM/yy"); 17 | qDebug() << dateTime; 18 | */ 19 | 20 | QDateTime agora; 21 | QString mes = agora.currentDateTime().toString("MM"); 22 | 23 | QDateTime timeConvertor; 24 | // QString customDateString = "14-Nov-2010 05:27:03 +0100"; 25 | QString customDateString = "01/10/2012"; 26 | 27 | QString dateTime = customDateString.left(10); 28 | int timezoneOffset = customDateString.right(5).left(3).toInt(); 29 | timeConvertor = QDateTime::fromString(customDateString, "dd/MM/yyyy"); 30 | 31 | qDebug() << dateTime << timezoneOffset << timeConvertor << mes; 32 | // Mark this QDateTime as one with a certain offset from UTC, and set that 33 | // offset. 34 | // timeConvertor.setTimeSpec(Qt::OffsetFromUTC); 35 | // timeConvertor.setUtcOffset(timezoneOffset * 3600); 36 | 37 | // Convert this QDateTime to UTC. 38 | // timeConvertor = timeConvertor.toUTC(); 39 | 40 | // Store the UTC timestamp. 41 | int timestamp = timeConvertor.toTime_t(); 42 | 43 | qDebug() << timestamp << timeConvertor.toString("dd/MM/yy HH:mm:ss"); 44 | 45 | } 46 | 47 | AnaliseVendas::~AnaliseVendas() 48 | { 49 | delete ui; 50 | } 51 | -------------------------------------------------------------------------------- /ligarcardapio.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | LigarCardapio 4 | 5 | 6 | 7 | 0 8 | 0 9 | 784 10 | 452 11 | 12 | 13 | 14 | Dialog 15 | 16 | 17 | 18 | 19 | 20 20 | 20 21 | 631 22 | 201 23 | 24 | 25 | 26 | 27 | 28 | 29 | 20 30 | 230 31 | 631 32 | 211 33 | 34 | 35 | 36 | 37 | 38 | 39 | 660 40 | 20 41 | 111 42 | 41 43 | 44 | 45 | 46 | Desligar 47 | 48 | 49 | 50 | 51 | 52 | 660 53 | 230 54 | 111 55 | 41 56 | 57 | 58 | 59 | Ligar 60 | 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /produto.h: -------------------------------------------------------------------------------- 1 | #ifndef PRODUTO_H 2 | #define PRODUTO_H 3 | 4 | #include 5 | #include "login.h" 6 | 7 | namespace Ui { 8 | class Produto; 9 | } 10 | 11 | class Produto : public QDialog 12 | { 13 | Q_OBJECT 14 | 15 | public: 16 | explicit Produto(QWidget *parent = 0); 17 | ~Produto(); 18 | 19 | void letipo(){ 20 | querytipo->prepare("select tipo, id_tipo from tipo"); 21 | querytipo->exec(); 22 | modaltipo->setQuery(*querytipo); 23 | } 24 | 25 | void lertamanho(){ 26 | querytamanho->prepare("select * from tamanho"); 27 | querytamanho->exec(); 28 | modaltamanho->setQuery(*querytamanho); 29 | } 30 | 31 | void leitens(){ 32 | queryitem->prepare("select * from item"); 33 | queryitem->exec(); 34 | modalitem->setQuery(*queryitem); 35 | } 36 | 37 | private slots: 38 | void on_pushButton_inserirtipo_clicked(); 39 | 40 | void on_pushButton_apagartipo_clicked(); 41 | 42 | void on_pushButton_instamanho_clicked(); 43 | 44 | void on_tableView_tamanho_activated(const QModelIndex &index); 45 | 46 | void on_pushButton_tamanho_atualizar_clicked(); 47 | 48 | void on_pushButton_del_tamanho_clicked(); 49 | 50 | void on_pushButton_atualizatipo_clicked(); 51 | 52 | void on_pushButton_procuraritem_clicked(); 53 | 54 | void on_pushButton_novoitem_clicked(); 55 | 56 | void on_tableView_itens_activated(const QModelIndex &index); 57 | 58 | void on_pushButton_atualizaritem_clicked(); 59 | 60 | void on_pushButton_apagaritem_clicked(); 61 | 62 | void on_listView_tipo_activated(const QModelIndex &index); 63 | 64 | private: 65 | Ui::Produto *ui; 66 | Login conn; 67 | QSqlQueryModel *modaltipo, *modaltamanho, *modalitem; 68 | QSqlQuery *querytipo, *querytamanho, *queryitem; 69 | int id_tipo=0, id_tamanho=0, id_item=0; 70 | 71 | }; 72 | 73 | #endif // PRODUTO_H 74 | -------------------------------------------------------------------------------- /login.cpp: -------------------------------------------------------------------------------- 1 | #include "login.h" 2 | #include "principal.h" 3 | 4 | #include "ui_login.h" 5 | 6 | extern QString user_logado, user_status, user_nome; 7 | extern int user_id, user_tipo; 8 | 9 | Login::Login(QWidget *parent) : 10 | QMainWindow(parent), 11 | ui(new Ui::Login) 12 | { 13 | ui->setupUi(this); 14 | 15 | // QPixmap pix("/mnt/midia4/prj/qt/sql/sql_app/selo_sabordelivery.png"); 16 | // ui->label_pic->setPixmap(pix); 17 | 18 | if(!connOpen()) 19 | ui->label_db->setText("Falha ao conectar DataBase"); 20 | else 21 | ui->label_db->setText("DataBase Conectado..."); 22 | 23 | } 24 | 25 | Login::~Login() 26 | { 27 | delete ui; 28 | // connClose(); 29 | 30 | qDebug() << "destrutor login"; 31 | 32 | } 33 | 34 | void Login::on_pushButton_login_clicked() 35 | { 36 | QString username, password; 37 | 38 | username=ui->lineEdit_user->text(); 39 | password=ui->lineEdit_pass->text(); 40 | 41 | if(!connOpen()){ 42 | qDebug() << "Falha ao conectar Database"; 43 | return; 44 | } 45 | else{ 46 | qDebug() << "conectado"; 47 | } 48 | 49 | connOpen(); 50 | 51 | QSqlQuery qry; 52 | qry.prepare("select username, tipo, id_usuario, nome from usuario where username=? and password=?"); 53 | qry.addBindValue(username); 54 | qry.addBindValue(password); 55 | 56 | int count=0, id_usuario=0, tipo; 57 | QString usuario, nome; 58 | 59 | if(qry.exec()){ 60 | while(qry.next()){ 61 | count++; 62 | usuario=qry.value(0).toString(); 63 | tipo=qry.value(1).toInt(); 64 | id_usuario=qry.value(2).toInt(); 65 | nome=qry.value(3).toString(); 66 | } 67 | } 68 | 69 | if(count==1){ 70 | ui->label_db->setText("Usuário e senha corretos"); 71 | 72 | connClose(); 73 | 74 | // MyGlobal.setuser(usuario, tipo, id_usuario); 75 | 76 | this->hide(); 77 | 78 | user_logado=usuario; 79 | user_tipo=tipo; 80 | user_id=id_usuario; 81 | user_nome=nome; 82 | 83 | Principal principal; 84 | principal.setModal(true); 85 | 86 | qDebug() <<"login"<< usuario << tipo << id_usuario; 87 | 88 | qDebug() << "userlogado -" << user_id; 89 | principal.exec(); 90 | 91 | } 92 | 93 | if(count>1){ 94 | ui->label_db->setText("Usuário e senha duplicados"); 95 | } 96 | if(count==0){ 97 | ui->label_db->setText("Usuário não encontrado"); 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /Controle.pro: -------------------------------------------------------------------------------- 1 | #------------------------------------------------- 2 | # 3 | # Project created by QtCreator 2017-06-02T14:51:52 4 | # 5 | #------------------------------------------------- 6 | 7 | QT += core gui sql printsupport 8 | 9 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 10 | 11 | TARGET = Controle 12 | TEMPLATE = app 13 | 14 | # The following define makes your compiler emit warnings if you use 15 | # any feature of Qt which as been marked as deprecated (the exact warnings 16 | # depend on your compiler). Please consult the documentation of the 17 | # deprecated API in order to know how to port your code away from it. 18 | DEFINES += QT_DEPRECATED_WARNINGS 19 | 20 | # You can also make your code fail to compile if you use deprecated APIs. 21 | # In order to do so, uncomment the following line. 22 | # You can also select to disable deprecated APIs only up to a certain version of Qt. 23 | #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 24 | 25 | 26 | SOURCES += \ 27 | main.cpp \ 28 | login.cpp \ 29 | userinfo.cpp \ 30 | principal.cpp \ 31 | estabelecimento.cpp \ 32 | cliente.cpp \ 33 | endereco.cpp \ 34 | produto.cpp \ 35 | preco.cpp \ 36 | menu.cpp \ 37 | cardapio.cpp \ 38 | venda.cpp \ 39 | submenu.cpp \ 40 | numberformatdelegate.cpp \ 41 | controleglobal.cpp \ 42 | entrega.cpp \ 43 | condominio.cpp \ 44 | pedidos.cpp \ 45 | precoentrega.cpp \ 46 | timeformatdelegate.cpp \ 47 | ligarcardapio.cpp \ 48 | jobfunctioncolumndelegate.cpp \ 49 | dateformatdelegate.cpp \ 50 | modopagtodelegate.cpp \ 51 | analisevendas.cpp 52 | 53 | HEADERS += \ 54 | login.h \ 55 | userinfo.h \ 56 | principal.h \ 57 | estabelecimento.h \ 58 | cliente.h \ 59 | endereco.h \ 60 | produto.h \ 61 | preco.h \ 62 | menu.h \ 63 | cardapio.h \ 64 | venda.h \ 65 | submenu.h \ 66 | numberformatdelegate.h \ 67 | controleglobal.h \ 68 | entrega.h \ 69 | condominio.h \ 70 | pedidos.h \ 71 | constants.h \ 72 | precoentrega.h \ 73 | timeformatdelegate.h \ 74 | ligarcardapio.h \ 75 | jobfunctioncolumndelegate.h \ 76 | dateformatdelegate.h \ 77 | modopagtodelegate.h \ 78 | analisevendas.h 79 | 80 | FORMS += \ 81 | login.ui \ 82 | userinfo.ui \ 83 | principal.ui \ 84 | estabelecimento.ui \ 85 | cliente.ui \ 86 | endereco.ui \ 87 | produto.ui \ 88 | preco.ui \ 89 | menu.ui \ 90 | cardapio.ui \ 91 | venda.ui \ 92 | submenu.ui \ 93 | entrega.ui \ 94 | condominio.ui \ 95 | pedidos.ui \ 96 | precoentrega.ui \ 97 | ligarcardapio.ui \ 98 | analisevendas.ui 99 | -------------------------------------------------------------------------------- /preco.h: -------------------------------------------------------------------------------- 1 | #ifndef PRECO_H 2 | #define PRECO_H 3 | 4 | #include 5 | #include "login.h" 6 | #include "numberformatdelegate.h" 7 | 8 | namespace Ui { 9 | class Preco; 10 | } 11 | 12 | class Preco : public QDialog 13 | { 14 | Q_OBJECT 15 | 16 | public: 17 | explicit Preco(QWidget *parent = 0); 18 | ~Preco(); 19 | 20 | void lertamanho(){ 21 | querytamanho->prepare("select tamanho, id_tamanho from tamanho"); 22 | querytamanho->exec(); 23 | modaltamanho->setQuery(*querytamanho); 24 | } 25 | 26 | void lertipo(){ 27 | querytipo->prepare("select tipo, id_tipo from tipo"); 28 | querytipo->exec(); 29 | modaltipo->setQuery(*querytipo); 30 | } 31 | 32 | void leritens(){ 33 | queryitem->prepare("select * from item WHERE (item.item_nome like :filtrar OR item.item_descricao like :filtrar)"); 34 | queryitem->bindValue(":filtrar", "%"+filtraritem+"%" ); 35 | queryitem->exec(); 36 | modalitem->setQuery(*queryitem); 37 | } 38 | 39 | void lerprecos(){ 40 | querypreco->prepare("SELECT preco.id_preco, preco.id_item, preco.id_tipo, preco.id_tamanho, preco.id, item.item_nome, tipo.tipo, tamanho.tamanho, preco.preco FROM preco \ 41 | INNER JOIN item ON preco.id_item=item.id_item\ 42 | INNER JOIN tipo ON preco.id_tipo=tipo.id_tipo\ 43 | INNER JOIN tamanho ON preco.id_tamanho=tamanho.id_tamanho \ 44 | WHERE (item.item_nome like :filtrar2 OR tipo.tipo like :filtrar2 OR tamanho.tamanho like :filtrar2)\ 45 | " ); 46 | querypreco->bindValue(":filtrar2", "%"+filtrarpreco+"%" ); 47 | querypreco->exec(); 48 | modelpreco2->setQuery(*querypreco); 49 | qDebug() << querypreco->lastError().text(); 50 | } 51 | 52 | private slots: 53 | void on_pushButton_fechar_clicked(); 54 | 55 | void on_comboBox_tipoitem_activated(const QString &arg1); 56 | 57 | void on_comboBox_tamanhoitem_activated(const QString &arg1); 58 | 59 | void on_pushButton_inserir_clicked(); 60 | 61 | void on_tableView_itens_activated(const QModelIndex &index); 62 | 63 | void on_tableView_precos_activated(const QModelIndex &index); 64 | 65 | void on_pushButton_apagar_clicked(); 66 | 67 | void on_pushButton_filtraritens_clicked(); 68 | 69 | void on_pushButton_filtrarpreco_clicked(); 70 | 71 | private: 72 | Ui::Preco *ui; 73 | Login conn; 74 | // QSqlRelationalTableModel *modelpreco; 75 | QSqlQueryModel *modalitem, *modaltipo, *modaltamanho, *modelpreco2; 76 | QSqlQuery *queryitem, *querytipo, *querytamanho, *querypreco; 77 | int id_item=0, id_tipo, id_tamanho, id_preco=0; 78 | QString filtraritem, filtrarpreco; 79 | }; 80 | 81 | #endif // PRECO_H 82 | -------------------------------------------------------------------------------- /cardapio.h: -------------------------------------------------------------------------------- 1 | #ifndef CARDAPIO_H 2 | #define CARDAPIO_H 3 | 4 | #include 5 | #include "login.h" 6 | #include "numberformatdelegate.h" 7 | 8 | namespace Ui { 9 | class Cardapio; 10 | } 11 | 12 | class Cardapio : public QDialog 13 | { 14 | Q_OBJECT 15 | 16 | public: 17 | explicit Cardapio(QWidget *parent = 0); 18 | ~Cardapio(); 19 | 20 | void lercardapio(){ 21 | querycardapio->prepare("SELECT cardapio.id_cardapio, item.item_nome, tipo.tipo, tamanho.tamanho, preco.preco, cardapio.id_menu, cardapio.id_preco FROM cardapio \ 22 | INNER JOIN preco ON cardapio.id_preco=preco.id_preco \ 23 | INNER JOIN item ON preco.id_item=item.id_item \ 24 | INNER JOIN tipo ON preco.id_tipo=tipo.id_tipo \ 25 | INNER JOIN tamanho ON preco.id_tamanho=tamanho.id_tamanho \ 26 | WHERE (cardapio.id_menu = :id_menu AND \ 27 | preco.ativo = 1 and \ 28 | (item.item_nome like :filtrar2 OR tipo.tipo like :filtrar2 OR tamanho.tamanho like :filtrar2) ) "); 29 | querycardapio->bindValue(":id_menu", id_menu); 30 | querycardapio->bindValue( ":filtrar2", "%"+filtrarcardapio+"%" ); 31 | 32 | querycardapio->exec(); 33 | modalcardapio2->setQuery(*querycardapio); 34 | 35 | } 36 | 37 | void lerpreco(){ 38 | querypreco->prepare("select preco.id_preco, item.item_nome, tipo.tipo, tamanho.tamanho, preco.preco from preco \ 39 | INNER JOIN item ON preco.id_item=item.id_item \ 40 | INNER JOIN tipo ON preco.id_tipo=tipo.id_tipo \ 41 | INNER JOIN tamanho ON preco.id_tamanho=tamanho.id_tamanho \ 42 | WHERE (tipo.tipo like :procurar ) or (item.item_nome = :procurar ) or (tamanho.tamanho like :procurar )"); 43 | querypreco->bindValue( ":procurar", "%"+procurar+"%" ); 44 | 45 | querypreco->exec(); 46 | modalpreco2->setQuery(*querypreco); 47 | 48 | } 49 | 50 | private slots: 51 | void on_pushButton_procurar_clicked(); 52 | 53 | void on_listView_menu_activated(const QModelIndex &index); 54 | 55 | void on_tableView_itens_activated(const QModelIndex &index); 56 | 57 | void on_pushButton_inserircardapio_clicked(); 58 | 59 | void on_pushButton_apagar_clicked(); 60 | 61 | void on_pushButton_filtrar_cardapio_clicked(); 62 | 63 | private: 64 | Ui::Cardapio *ui; 65 | Login conn; 66 | QSqlQueryModel *modalmenu, *modalpreco2, *modalcardapio2; 67 | QSqlQuery *querymenu, *querypreco, *querycardapio; 68 | // QSqlRelationalTableModel *modelpreco, *modelcardapio; 69 | int id_menu=0; 70 | QString filtrarcardapio, procurar; 71 | }; 72 | 73 | #endif // CARDAPIO_H 74 | -------------------------------------------------------------------------------- /endereco.h: -------------------------------------------------------------------------------- 1 | #ifndef ENDERECO_H 2 | #define ENDERECO_H 3 | 4 | #include 5 | #include "login.h" 6 | #include "cliente.h" 7 | 8 | namespace Ui { 9 | class Endereco; 10 | } 11 | 12 | class Endereco : public QDialog 13 | { 14 | Q_OBJECT 15 | Login conn; 16 | QSqlQuery *query, *cliente, *endereco; 17 | QString cidade, estado; 18 | int loc_nu_sequencial, id_cliente=0, id_endereco=0, id_loja=0, bai_nu=0, log_nu=0; 19 | 20 | public: 21 | explicit Endereco(QWidget *parent = 0); 22 | ~Endereco(); 23 | 24 | void lecidades(QString ufe){ 25 | querycidades->prepare("select log_localidade.loc_nosub, log_localidade.ufe_sg, log_localidade.loc_nu_sequencial \ 26 | from log_localidade \ 27 | INNER JOIN log_faixa_uf ON log_faixa_uf.ufe_sg=log_localidade.ufe_sg \ 28 | WHERE log_faixa_uf.ufe_no=:ufe "); 29 | querycidades->bindValue(":ufe",ufe); 30 | querycidades->exec(); 31 | modalcidades->setQuery(*querycidades); 32 | 33 | } 34 | 35 | void leruas(QString filtro){ 36 | queryruas->prepare("select log_logradouro.log_nome, log_bairro.bai_no, log_logradouro.cep, log_bairro.bai_nu_sequencial, log_logradouro.log_nu_sequencial \ 37 | from log_logradouro \ 38 | INNER JOIN log_bairro ON log_logradouro.bai_nu_sequencial_ini=log_bairro.bai_nu_sequencial \ 39 | WHERE log_logradouro.loc_nu_sequencial=:loc_nu and \ 40 | ( \ 41 | (log_bairro.bai_no like :bairro) or \ 42 | (log_logradouro.log_nome like :rua) or \ 43 | (log_logradouro.cep like :cep) ) "); 44 | queryruas->bindValue(":loc_nu",loc_nu_sequencial); 45 | queryruas->bindValue( ":rua", "%" + filtro + "%" ); 46 | queryruas->bindValue( ":bairro", "%" + filtro + "%" ); 47 | queryruas->bindValue( ":cep", "%" + filtro + "%" ); 48 | queryruas->exec(); 49 | modalruas->setQuery(*queryruas); 50 | qDebug()<lastError().text(); 51 | } 52 | 53 | private slots: 54 | void on_pushButton_procurarcliente_clicked(); 55 | 56 | void on_comboBox_estados_activated(const QString &arg1); 57 | 58 | void on_pushButton_procurar_clicked(); 59 | 60 | void on_comboBox_cidade_activated(const QString &arg1); 61 | 62 | void on_tableView_enderecos_activated(const QModelIndex &index); 63 | 64 | void on_pushButton_cancelar_clicked(); 65 | 66 | void on_pushButton_gravar_clicked(); 67 | 68 | void on_tableView_clientes_activated(const QModelIndex &index); 69 | 70 | void on_tableView_endcadast_activated(const QModelIndex &index); 71 | 72 | void on_pushButton_apagar_clicked(); 73 | 74 | void on_pushButton_novocliente_clicked(); 75 | 76 | private: 77 | Ui::Endereco *ui; 78 | QSqlQueryModel *modalestados, *modalcidades, *modalruas; 79 | QSqlQuery *queryestados, *querycidades, *queryruas; 80 | 81 | }; 82 | 83 | #endif // ENDERECO_H 84 | -------------------------------------------------------------------------------- /entrega.h: -------------------------------------------------------------------------------- 1 | #ifndef ENTREGA_H 2 | #define ENTREGA_H 3 | 4 | #include 5 | #include "login.h" 6 | #include "numberformatdelegate.h" 7 | 8 | namespace Ui { 9 | class Entrega; 10 | } 11 | 12 | class Entrega : public QDialog 13 | { 14 | Q_OBJECT 15 | Login conn; 16 | 17 | public: 18 | explicit Entrega(QWidget *parent = 0); 19 | ~Entrega(); 20 | 21 | void lerestados(){ 22 | queryestados->prepare("select ufe_no from log_faixa_uf"); 23 | queryestados->exec(); 24 | modalestados->setQuery(*queryestados); 25 | } 26 | 27 | void lerbairros(int loc_nu, QString filtro){ 28 | querybairros->prepare("select log_bairro.bai_no, log_bairro.bai_nu_sequencial \ 29 | from log_bairro \ 30 | WHERE log_bairro.loc_nu_sequencial=:loc_nu_sequencial and \ 31 | (log_bairro.bai_no like :filtro) "); 32 | querybairros->bindValue(":filtro", "%" + filtro + "%" ); 33 | querybairros->bindValue(":loc_nu_sequencial",loc_nu); 34 | querybairros->exec(); 35 | modalbairros->setQuery(*querybairros); 36 | 37 | } 38 | 39 | void lercidades(QString estado){ 40 | querycidades->prepare("select log_localidade.loc_nosub, log_localidade.ufe_sg, log_localidade.loc_nu_sequencial \ 41 | from log_localidade \ 42 | INNER JOIN log_faixa_uf ON log_faixa_uf.ufe_sg=log_localidade.ufe_sg \ 43 | WHERE log_faixa_uf.ufe_no=:ufe "); 44 | querycidades->bindValue(":ufe",estado); 45 | querycidades->exec(); 46 | modalcidades->setQuery(*querycidades); 47 | } 48 | 49 | void leentrega(QString filtro){ 50 | queryentrega->prepare("select entrega.id_entrega, entrega.bai_nu_sequencial, entrega.loc_nu_sequencial, log_bairro.bai_no, \ 51 | log_localidade.loc_nosub, entrega.valor, entrega.percentual, entrega.extra from entrega\ 52 | INNER JOIN log_bairro ON entrega.bai_nu_sequencial=log_bairro.bai_nu_sequencial \ 53 | INNER JOIN log_localidade ON entrega.loc_nu_sequencial=log_localidade.loc_nu_sequencial \ 54 | WHERE (log_bairro.bai_no like :filtro) "); 55 | queryentrega->bindValue(":filtro", "%" + filtro + "%" ); 56 | queryentrega->exec(); 57 | modalentrega->setQuery(*queryentrega); 58 | 59 | qDebug() << queryentrega->lastError().text(); 60 | 61 | } 62 | 63 | private slots: 64 | void on_comboBox_estados_activated(const QString &arg1); 65 | 66 | void on_comboBox_cidade_activated(const QString &arg1); 67 | 68 | void on_pushButton_inserirbairros_clicked(); 69 | 70 | void on_pushButton_apagar_clicked(); 71 | 72 | void on_pushButton_procurar_clicked(); 73 | 74 | private: 75 | Ui::Entrega *ui; 76 | QSqlQueryModel *modalestados, *modalcidades, *modalbairros, *modalentrega; 77 | QSqlQuery *queryestados, *querycidades, *querybairros, *queryentrega; 78 | QString cidade, estado, filtro=""; 79 | int loc_nu_sequencial=0; 80 | }; 81 | 82 | #endif // ENTREGA_H 83 | -------------------------------------------------------------------------------- /estabelecimento.h: -------------------------------------------------------------------------------- 1 | #ifndef ESTABELECIMENTO_H 2 | #define ESTABELECIMENTO_H 3 | 4 | #include 5 | #include "login.h" 6 | #include "constants.h" 7 | 8 | namespace Ui { 9 | class Estabelecimento; 10 | } 11 | 12 | class Estabelecimento : public QDialog 13 | { 14 | Q_OBJECT 15 | 16 | public: 17 | explicit Estabelecimento(QWidget *parent = 0); 18 | ~Estabelecimento(); 19 | 20 | void lerloja(){ 21 | queryloja->prepare("SELECT nome, endereco, numero, bairro, cidade, estado, cep, fone, inscrest, cnpj, site, facebook, id_loja, config FROM loja"); 22 | queryloja->exec(); 23 | modalloja->setQuery(*queryloja); 24 | } 25 | 26 | void lerestados(){ 27 | queryestados->prepare("select ufe_no, ufe_sg from log_faixa_uf"); 28 | queryestados->exec(); 29 | modalestados->setQuery(*queryestados); 30 | } 31 | 32 | void lercidades(QString estado){ 33 | querycidade->prepare("select log_localidade.loc_nosub, log_localidade.loc_nu_sequencial \ 34 | from log_faixa_uf \ 35 | INNER JOIN log_localidade ON log_faixa_uf.ufe_sg=log_localidade.ufe_sg \ 36 | WHERE log_faixa_uf.ufe_no=:ufe "); 37 | querycidade->bindValue(":ufe", estado); 38 | querycidade->exec(); 39 | modalcidade->setQuery(*querycidade); 40 | qDebug()<< querycidade->lastError().text(); 41 | } 42 | 43 | void lerruas(int loc_nu, QString filtrar){ 44 | queryruas->prepare("select log_logradouro.log_nome, log_bairro.bai_no, log_logradouro.cep \ 45 | from log_logradouro \ 46 | INNER JOIN log_bairro ON log_logradouro.bai_nu_sequencial_ini=log_bairro.bai_nu_sequencial \ 47 | WHERE log_logradouro.loc_nu_sequencial=:loc_nu and \ 48 | ( (log_logradouro.log_nome like :filtrar) or (log_bairro.bai_no like :filtrar) ) "); 49 | queryruas->bindValue( ":filtrar", "%"+filtrar+"%" ); 50 | queryruas->bindValue(":loc_nu",loc_nu); 51 | queryruas->exec(); 52 | modalruas->setQuery(*queryruas); 53 | qDebug()<< queryruas->lastError().text() << loc_nu; 54 | } 55 | 56 | private slots: 57 | void on_comboBox_estados_activated(const QString &arg1); 58 | 59 | void on_pushButton_procurar_clicked(); 60 | 61 | void on_tableView_activated(const QModelIndex &index); 62 | 63 | void on_pushButton_cancelar_clicked(); 64 | 65 | void on_pushButton_salvar_clicked(); 66 | 67 | void on_comboBox_cidades_activated(const QString &arg1); 68 | 69 | void on_radioButton_entregavalor_clicked(); 70 | 71 | void on_radioButton_entregaperc_clicked(); 72 | 73 | void on_radioButton_mult_maior_clicked(); 74 | 75 | void on_radioButton_mult_media_clicked(); 76 | 77 | private: 78 | Ui::Estabelecimento *ui; 79 | QSqlQueryModel *modalloja, *modalestados, *modalruas, *modalcidade; 80 | QSqlQuery *queryloja, *queryestados, *queryruas, *querycidade; 81 | QString cidade, estado, ufe_sg, filtro=""; 82 | int loc_nu_sequencial, configuracao=0; 83 | Login conn; 84 | }; 85 | 86 | #endif // ESTABELECIMENTO_H 87 | -------------------------------------------------------------------------------- /ligarcardapio.h: -------------------------------------------------------------------------------- 1 | #ifndef LIGARCARDAPIO_H 2 | #define LIGARCARDAPIO_H 3 | 4 | #include 5 | 6 | #include "login.h" 7 | 8 | namespace Ui { 9 | class LigarCardapio; 10 | } 11 | 12 | class LigarCardapio : public QDialog 13 | { 14 | Q_OBJECT 15 | 16 | void lercardapio(){ 17 | querycardapio->prepare("SELECT cardapio.id_cardapio, item.item_nome, item.item_descricao, " 18 | " tipo.tipo, tamanho.tamanho, preco.preco, cardapio.id_menu, " 19 | " cardapio.id_preco FROM cardapio \ 20 | INNER JOIN preco ON cardapio.id_preco=preco.id_preco \ 21 | INNER JOIN item ON preco.id_item=item.id_item \ 22 | INNER JOIN tipo ON preco.id_tipo=tipo.id_tipo \ 23 | INNER JOIN tamanho ON preco.id_tamanho=tamanho.id_tamanho \ 24 | WHERE (cardapio.ativo=1) "); 25 | //querycardapio->bindValue(":id_menu", id_menu); 26 | //querycardapio->bindValue( ":filtrar2", "%"+filtrarcardapio+"%" ); 27 | querycardapio->exec(); 28 | modalcardapio->setQuery(*querycardapio); 29 | 30 | querycardapio_off->prepare("SELECT cardapio.id_cardapio, item.item_nome, item.item_descricao, " 31 | " tipo.tipo, tamanho.tamanho, preco.preco, cardapio.id_menu, " 32 | " cardapio.id_preco FROM cardapio \ 33 | INNER JOIN preco ON cardapio.id_preco=preco.id_preco \ 34 | INNER JOIN item ON preco.id_item=item.id_item \ 35 | INNER JOIN tipo ON preco.id_tipo=tipo.id_tipo \ 36 | INNER JOIN tamanho ON preco.id_tamanho=tamanho.id_tamanho \ 37 | WHERE (cardapio.ativo=0) "); 38 | //querycardapio->bindValue(":id_menu", id_menu); 39 | //querycardapio->bindValue( ":filtrar2", "%"+filtrarcardapio+"%" ); 40 | querycardapio_off->exec(); 41 | modalcardapio_off->setQuery(*querycardapio_off); 42 | 43 | modalcardapio->setHeaderData(1, Qt::Horizontal, tr("Item")); 44 | modalcardapio->setHeaderData(2, Qt::Horizontal, tr("Descrição")); 45 | modalcardapio->setHeaderData(3, Qt::Horizontal, tr("Tipo")); 46 | modalcardapio->setHeaderData(4, Qt::Horizontal, tr("Tamanho")); 47 | modalcardapio_off->setHeaderData(1, Qt::Horizontal, tr("Item")); 48 | modalcardapio_off->setHeaderData(2, Qt::Horizontal, tr("Descrição")); 49 | modalcardapio_off->setHeaderData(3, Qt::Horizontal, tr("Tipo")); 50 | modalcardapio_off->setHeaderData(4, Qt::Horizontal, tr("Tamanho")); 51 | 52 | } 53 | 54 | public: 55 | explicit LigarCardapio(QWidget *parent = 0); 56 | ~LigarCardapio(); 57 | 58 | private slots: 59 | void on_tableView_on_activated(const QModelIndex &index); 60 | 61 | void on_pushButton_desligar_clicked(); 62 | 63 | void on_pushButton_ligar_clicked(); 64 | 65 | private: 66 | Ui::LigarCardapio *ui; 67 | Login conn; 68 | QSqlQueryModel *modalcardapio, *modalcardapio_off; 69 | QSqlQuery *querycardapio, *querycardapio_off; 70 | }; 71 | 72 | #endif // LIGARCARDAPIO_H 73 | -------------------------------------------------------------------------------- /entrega.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Entrega 4 | 5 | 6 | 7 | 0 8 | 0 9 | 1012 10 | 545 11 | 12 | 13 | 14 | Definir Área de Entrega 15 | 16 | 17 | 18 | 19 | 30 20 | 40 21 | 271 22 | 22 23 | 24 | 25 | 26 | 27 | 28 | 29 | 310 30 | 20 31 | 59 32 | 14 33 | 34 | 35 | 36 | Cidade 37 | 38 | 39 | 40 | 41 | 42 | 310 43 | 40 44 | 251 45 | 22 46 | 47 | 48 | 49 | 50 | 51 | 52 | 30 53 | 70 54 | 721 55 | 22 56 | 57 | 58 | 59 | <html><head/><body><p>Entre com bairro ou rua</p></body></html> 60 | 61 | 62 | true 63 | 64 | 65 | 66 | 67 | 68 | 30 69 | 100 70 | 271 71 | 431 72 | 73 | 74 | 75 | 76 | 77 | 78 | 760 79 | 70 80 | 101 81 | 22 82 | 83 | 84 | 85 | Procurar 86 | 87 | 88 | 89 | 90 | 91 | 30 92 | 20 93 | 59 94 | 14 95 | 96 | 97 | 98 | Estado 99 | 100 | 101 | 102 | 103 | 104 | 870 105 | 170 106 | 131 107 | 41 108 | 109 | 110 | 111 | Apagar 112 | Seleção 113 | 114 | 115 | 116 | 117 | 118 | 310 119 | 100 120 | 551 121 | 431 122 | 123 | 124 | 125 | 126 | 127 | 128 | 870 129 | 100 130 | 131 131 | 51 132 | 133 | 134 | 135 | Inserir 136 | Bairros 137 | 138 | 139 | 140 | 141 | 142 | 143 | -------------------------------------------------------------------------------- /cliente.h: -------------------------------------------------------------------------------- 1 | #ifndef CLIENTE_H 2 | #define CLIENTE_H 3 | 4 | #include 5 | #include "login.h" 6 | 7 | #define BAI_LOJA 4 8 | #define LOG_LOJA 5 9 | #define UF_LOJA 6 10 | 11 | namespace Ui { 12 | class Cliente; 13 | } 14 | 15 | class Cliente : public QDialog 16 | { 17 | Q_OBJECT 18 | Login conn; 19 | QSqlQuery *query, *queryendereco; 20 | QSqlQueryModel *modal, *modalendereco; 21 | QSqlQueryModel *modalestados, *modalcidades, *modalruas; 22 | QSqlQuery *queryestados, *querycidades, *queryruas; 23 | int id_cliente=0, id_endereco=0; 24 | QString cidade, estado; 25 | int loc_nu_sequencial, bai_nu=0, log_nu=0; 26 | QSqlQueryModel *modalloja; 27 | QSqlQuery *queryloja; 28 | 29 | public: 30 | explicit Cliente(QWidget *parent = 0); 31 | ~Cliente(); 32 | 33 | void lerendereco(int id){ 34 | queryendereco->prepare("select * from endereco where id_cliente=:id_cliente"); 35 | queryendereco->bindValue(":id_cliente",id); 36 | queryendereco->exec(); 37 | modalendereco->setQuery(*queryendereco); 38 | } 39 | 40 | //INNER JOIN log_faixa_uf ON log_faixa_uf.ufe_sg=log_localidade.ufe_sg \ 41 | 42 | void lecidades(QString ufe){ 43 | querycidades->prepare("select log_localidade.loc_nosub, log_localidade.loc_nu_sequencial \ 44 | from log_localidade \ 45 | WHERE log_localidade.ufe_sg=:ufe "); 46 | querycidades->bindValue(":ufe",ufe); 47 | querycidades->exec(); 48 | modalcidades->setQuery(*querycidades); 49 | 50 | } 51 | 52 | void leruas(QString filtro){ 53 | queryruas->prepare("select log_logradouro.log_tipo_logradouro, log_logradouro.log_no, log_logradouro.log_nome, log_bairro.bai_no, log_logradouro.cep, log_bairro.bai_nu_sequencial, log_logradouro.log_nu_sequencial \ 54 | from log_logradouro \ 55 | INNER JOIN log_bairro ON log_logradouro.bai_nu_sequencial_ini=log_bairro.bai_nu_sequencial \ 56 | WHERE log_logradouro.loc_nu_sequencial=:loc_nu and \ 57 | ( \ 58 | (log_bairro.bai_no like :bairro) or \ 59 | (log_logradouro.log_nome like :rua) or \ 60 | (log_logradouro.cep like :cep) ) "); 61 | queryruas->bindValue(":loc_nu",loc_nu_sequencial); 62 | queryruas->bindValue( ":rua", "%" + filtro + "%" ); 63 | queryruas->bindValue( ":bairro", "%" + filtro + "%" ); 64 | queryruas->bindValue( ":cep", "%" + filtro + "%" ); 65 | queryruas->exec(); 66 | modalruas->setQuery(*queryruas); 67 | qDebug()<lastError().text(); 68 | } 69 | 70 | void lerloja(){ 71 | queryloja->prepare("select * from loja"); 72 | queryloja->exec(); 73 | modalloja->setQuery(*queryloja); 74 | } 75 | 76 | private slots: 77 | void on_pushButton_fechar_clicked(); 78 | 79 | void on_pushButton_gravar_clicked(); 80 | 81 | void on_pushButton_procurar_clicked(); 82 | 83 | void on_tableView_clientes_activated(const QModelIndex &index); 84 | 85 | void on_tableView_clientes_doubleClicked(const QModelIndex &index); 86 | 87 | void on_tableView_endcadast_activated(const QModelIndex &index); 88 | 89 | void on_pushButton_limpar_clicked(); 90 | 91 | void on_comboBox_estados_activated(const QString &arg1); 92 | 93 | void on_comboBox_cidade_activated(const QString &arg1); 94 | 95 | void on_pushButton_procurar_2_clicked(); 96 | 97 | void on_tableView_enderecos_activated(const QModelIndex &index); 98 | 99 | void on_pushButton_gravar_2_clicked(); 100 | 101 | void on_pushButton_apagar_clicked(); 102 | 103 | private: 104 | Ui::Cliente *ui; 105 | }; 106 | 107 | #endif // CLIENTE_H 108 | -------------------------------------------------------------------------------- /cardapio.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Cardapio 4 | 5 | 6 | 7 | 0 8 | 0 9 | 989 10 | 622 11 | 12 | 13 | 14 | Montar Cardápio 15 | 16 | 17 | 18 | 19 | 20 20 | 20 21 | 291 22 | 211 23 | 24 | 25 | 26 | 27 | 28 | 29 | 320 30 | 50 31 | 511 32 | 181 33 | 34 | 35 | 36 | 37 | 38 | 39 | 320 40 | 20 41 | 371 42 | 22 43 | 44 | 45 | 46 | true 47 | 48 | 49 | 50 | 51 | 52 | 700 53 | 20 54 | 131 55 | 22 56 | 57 | 58 | 59 | Filtrar 60 | 61 | 62 | 63 | 64 | 65 | 20 66 | 250 67 | 211 68 | 21 69 | 70 | 71 | 72 | 73 | 12 74 | 75 75 | true 76 | 77 | 78 | 79 | [ Selecione Menu ] 80 | 81 | 82 | 83 | 84 | 85 | 20 86 | 280 87 | 811 88 | 331 89 | 90 | 91 | 92 | 93 | 94 | 95 | 840 96 | 50 97 | 141 98 | 51 99 | 100 | 101 | 102 | Inserir Linhas 103 | selecionadas 104 | 105 | 106 | 107 | 108 | 109 | 840 110 | 280 111 | 141 112 | 41 113 | 114 | 115 | 116 | Apagar 117 | 118 | 119 | 120 | 121 | 122 | 260 123 | 250 124 | 431 125 | 22 126 | 127 | 128 | 129 | true 130 | 131 | 132 | 133 | 134 | 135 | 700 136 | 250 137 | 131 138 | 22 139 | 140 | 141 | 142 | Filtrar 143 | 144 | 145 | 146 | 147 | 148 | 149 | -------------------------------------------------------------------------------- /principal.cpp: -------------------------------------------------------------------------------- 1 | #include "principal.h" 2 | #include "ui_principal.h" 3 | 4 | #include "userinfo.h" 5 | #include "estabelecimento.h" 6 | #include "cliente.h" 7 | #include "endereco.h" 8 | #include "produto.h" 9 | #include "preco.h" 10 | #include "menu.h" 11 | #include "cardapio.h" 12 | #include "venda.h" 13 | #include "submenu.h" 14 | #include "entrega.h" 15 | #include "condominio.h" 16 | #include "pedidos.h" 17 | #include "precoentrega.h" 18 | #include "ligarcardapio.h" 19 | #include "analisevendas.h" 20 | 21 | extern QString funcao[NFUNC]; 22 | extern QString user_logado, user_status, user_nome; 23 | extern int user_id, user_tipo; 24 | 25 | Principal::Principal(QWidget *parent) : 26 | QDialog(parent), 27 | ui(new Ui::Principal) 28 | { 29 | ui->setupUi(this); 30 | 31 | ui->label_nomeuser->setText(user_logado); 32 | ui->label_status->setText(funcao[user_tipo]); 33 | ui->label_nome->setText(user_nome); 34 | 35 | qDebug() << user_logado << user_status; 36 | } 37 | 38 | Principal::~Principal() 39 | { 40 | delete ui; 41 | } 42 | 43 | void Principal::on_pushButton_clicked() 44 | { 45 | Userinfo userinfo; 46 | 47 | userinfo.setModal(true); 48 | userinfo.exec(); 49 | } 50 | 51 | void Principal::on_pushButton_configloja_clicked() 52 | { 53 | 54 | Estabelecimento Loja; 55 | 56 | Loja.setModal(true); 57 | Loja.exec(); 58 | } 59 | 60 | void Principal::on_pushButton_cadastrocliente_clicked() 61 | { 62 | Cliente Comprador; 63 | 64 | Comprador.setModal(true); 65 | Comprador.exec(); 66 | } 67 | 68 | void Principal::on_pushButton_cadastroendereco_clicked() 69 | { 70 | Endereco End_cliente; 71 | 72 | End_cliente.setModal(true); 73 | End_cliente.exec(); 74 | } 75 | 76 | void Principal::on_pushButton_produto_clicked() 77 | { 78 | Produto Itemcompleto; 79 | 80 | Itemcompleto.setModal(true); 81 | Itemcompleto.exec(); 82 | } 83 | 84 | void Principal::on_pushButton_precoitem_clicked() 85 | { 86 | Preco Precoitem; 87 | 88 | Precoitem.setModal(true); 89 | Precoitem.exec(); 90 | } 91 | 92 | void Principal::on_pushButton_cadastrarmenu_clicked() 93 | { 94 | Menu Menuitem; 95 | 96 | Menuitem.setModal(true); 97 | Menuitem.exec(); 98 | } 99 | 100 | void Principal::on_pushButton_montarcardapio_clicked() 101 | { 102 | Cardapio CardapioCompleto; 103 | 104 | CardapioCompleto.setModal(true); 105 | CardapioCompleto.exec(); 106 | } 107 | 108 | void Principal::on_pushButton_venda_clicked() 109 | { 110 | Venda VendaDireta; 111 | 112 | // VendaDireta.setuser(user_logado, user_tipo, id_user ); 113 | 114 | VendaDireta.setModal(true); 115 | VendaDireta.exec(); 116 | } 117 | 118 | void Principal::on_pushButton_submenu_clicked() 119 | { 120 | Submenu Adicional; 121 | 122 | Adicional.setModal(true); 123 | Adicional.exec(); 124 | } 125 | 126 | void Principal::on_pushButton_entrega_clicked() 127 | { 128 | Entrega entrega; 129 | 130 | entrega.setModal(true); 131 | entrega.exec(); 132 | } 133 | 134 | void Principal::on_pushButton_condominio_clicked() 135 | { 136 | Condominio condominio; 137 | 138 | condominio.setModal(true); 139 | condominio.exec(); 140 | } 141 | 142 | void Principal::on_pushButton_pedidos_clicked() 143 | { 144 | Pedidos clpedidos; 145 | 146 | clpedidos.setModal(true); 147 | clpedidos.exec(); 148 | } 149 | 150 | void Principal::on_pushButton_precosentrega_clicked() 151 | { 152 | PrecoEntrega precoentrega; 153 | 154 | precoentrega.setModal(true); 155 | precoentrega.exec(); 156 | } 157 | 158 | void Principal::on_pushButton_ligar_clicked() 159 | { 160 | LigarCardapio ligarcardapio; 161 | 162 | ligarcardapio.setModal(true); 163 | ligarcardapio.exec(); 164 | } 165 | 166 | void Principal::on_pushButton_analisevendas_clicked() 167 | { 168 | AnaliseVendas analisevendas; 169 | 170 | analisevendas.setModal(true); 171 | analisevendas.exec(); 172 | } 173 | -------------------------------------------------------------------------------- /ligarcardapio.cpp: -------------------------------------------------------------------------------- 1 | #include "ligarcardapio.h" 2 | #include "ui_ligarcardapio.h" 3 | #include "qmessagebox.h" 4 | 5 | LigarCardapio::LigarCardapio(QWidget *parent) : 6 | QDialog(parent), 7 | ui(new Ui::LigarCardapio) 8 | { 9 | ui->setupUi(this); 10 | conn.connOpen(); 11 | 12 | querycardapio=new QSqlQuery(conn.mydb); 13 | modalcardapio=new QSqlQueryModel(); 14 | querycardapio_off=new QSqlQuery(conn.mydb); 15 | modalcardapio_off=new QSqlQueryModel(); 16 | 17 | lercardapio(); 18 | 19 | ui->tableView_on->setModel(modalcardapio); 20 | ui->tableView_off->setModel(modalcardapio_off); 21 | ui->tableView_on->hideColumn(0); 22 | ui->tableView_on->hideColumn(5); 23 | ui->tableView_on->hideColumn(6); 24 | ui->tableView_on->hideColumn(7); 25 | ui->tableView_off->hideColumn(0); 26 | ui->tableView_off->hideColumn(5); 27 | ui->tableView_off->hideColumn(6); 28 | ui->tableView_off->hideColumn(7); 29 | 30 | ui->tableView_on->resizeColumnsToContents(); 31 | ui->tableView_off->resizeColumnsToContents(); 32 | } 33 | 34 | LigarCardapio::~LigarCardapio() 35 | { 36 | delete ui; 37 | 38 | conn.connClose(); 39 | } 40 | 41 | void LigarCardapio::on_tableView_on_activated(const QModelIndex &index) 42 | { 43 | if(modalcardapio->rowCount()==0)return; 44 | qDebug() << "tableView_cardapioon_activated"; 45 | 46 | QString celula=ui->tableView_on->model()->data(index).toString(); 47 | 48 | int colunas=ui->tableView_on->model()->columnCount(); 49 | int linha=index.row(); 50 | int coluna=index.column(); 51 | 52 | } 53 | 54 | void LigarCardapio::on_pushButton_desligar_clicked() 55 | { 56 | QModelIndexList indexList = ui->tableView_on->selectionModel()->selectedIndexes(); 57 | 58 | QString str, idnovo; 59 | int anterior, row, id; 60 | QVariantList list_id; 61 | 62 | 63 | anterior=-1; 64 | foreach (QModelIndex index, indexList) { 65 | row=index.row(); 66 | if(anterior!=row){ 67 | id=modalcardapio->record(row).value(0).toInt(); 68 | list_id << id; 69 | qDebug() << row<< id; 70 | } 71 | anterior=row; 72 | } 73 | querycardapio->prepare("update cardapio set ativo=0 \ 74 | where id_cardapio=:id_cardapio "); 75 | querycardapio->bindValue(":id_cardapio", list_id); 76 | if(!querycardapio->execBatch()){ 77 | QMessageBox::critical(this,tr("Erro"),tr("Erro na gravação de dados!")); 78 | } 79 | else{ 80 | lercardapio(); 81 | ui->tableView_on->setModel(modalcardapio); 82 | ui->tableView_off->setModel(modalcardapio_off); 83 | ui->tableView_on->resizeColumnsToContents(); 84 | ui->tableView_off->resizeColumnsToContents(); 85 | } 86 | 87 | } 88 | 89 | void LigarCardapio::on_pushButton_ligar_clicked() 90 | { 91 | QModelIndexList indexList = ui->tableView_off->selectionModel()->selectedIndexes(); 92 | 93 | QString str, idnovo; 94 | int anterior, row, id; 95 | QVariantList list_id; 96 | 97 | anterior=-1; 98 | foreach (QModelIndex index, indexList) { 99 | row=index.row(); 100 | if(anterior!=row){ 101 | id=modalcardapio_off->record(row).value(0).toInt(); 102 | list_id << id; 103 | qDebug() << row<< id; 104 | } 105 | anterior=row; 106 | } 107 | querycardapio_off->prepare("update cardapio set ativo=1 \ 108 | where id_cardapio=:id_cardapio "); 109 | querycardapio_off->bindValue(":id_cardapio", list_id); 110 | if(!querycardapio_off->execBatch()){ 111 | QMessageBox::critical(this,tr("Erro"),tr("Erro na gravação de dados!")); 112 | } 113 | else{ 114 | lercardapio(); 115 | ui->tableView_on->setModel(modalcardapio); 116 | ui->tableView_off->setModel(modalcardapio_off); 117 | ui->tableView_on->resizeColumnsToContents(); 118 | ui->tableView_off->resizeColumnsToContents(); 119 | } 120 | 121 | } 122 | -------------------------------------------------------------------------------- /condominio.h: -------------------------------------------------------------------------------- 1 | #ifndef CONDOMINIO_H 2 | #define CONDOMINIO_H 3 | 4 | #include 5 | #include "login.h" 6 | #include "numberformatdelegate.h" 7 | 8 | namespace Ui { 9 | class Condominio; 10 | } 11 | 12 | class Condominio : public QDialog 13 | { 14 | Q_OBJECT 15 | 16 | public: 17 | explicit Condominio(QWidget *parent = 0); 18 | ~Condominio(); 19 | 20 | void lerlogradouro(int log_nu){ 21 | querylog->prepare("select log_logradouro.log_nome, log_bairro.bai_no from log_logradouro \ 22 | inner join log_bairro on log_logradouro.bai_nu_sequencial_ini=log_bairro.bai_nu_sequencial\ 23 | where log_logradouro.log_nu_sequencial=:log_nu"); 24 | querylog->bindValue(":log_nu",log_nu); 25 | querylog->exec(); 26 | modallog->setQuery(*querylog); 27 | 28 | qDebug() << querylog->lastError().text(); 29 | } 30 | 31 | void lerestados(){ 32 | queryestados->prepare("select ufe_no, ufe_sg from log_faixa_uf"); 33 | queryestados->exec(); 34 | modalestados->setQuery(*queryestados); 35 | } 36 | 37 | void lecondominio(){ 38 | querycondominio->prepare("select condominio.id_condominio, condominio.nome_condo, log_logradouro.log_nome, condominio.numero, log_bairro.bai_no, \ 39 | condominio.valor, condominio.percentual, condominio.extra, log_logradouro.log_nu_sequencial from condominio\ 40 | inner join log_logradouro on log_logradouro.log_nu_sequencial=condominio.log_nu_sequencial \ 41 | inner join log_bairro on log_logradouro.bai_nu_sequencial_ini=log_bairro.bai_nu_sequencial" ); 42 | querycondominio->exec(); 43 | modalcondominio->setQuery(*querycondominio); 44 | qDebug() << querycondominio->lastError().text(); 45 | } 46 | 47 | void lecidades(){ 48 | querycidades->prepare("select log_localidade.loc_nosub, log_localidade.ufe_sg, log_localidade.loc_nu_sequencial \ 49 | from log_localidade \ 50 | WHERE log_localidade.ufe_sg=:ufe "); 51 | querycidades->bindValue(":ufe",ufe); 52 | querycidades->exec(); 53 | modalcidades->setQuery(*querycidades); 54 | 55 | qDebug()<lastError().text(); 56 | 57 | } 58 | 59 | void leruas(QString &rua){ 60 | 61 | queryrua->prepare("SELECT log_logradouro.log_tipo_logradouro,log_logradouro.log_no, log_logradouro.cep, \ 62 | log_bairro.bai_no, log_bairro.bai_nu_sequencial, log_logradouro.log_nu_sequencial \ 63 | FROM log_logradouro \ 64 | INNER JOIN log_bairro ON log_logradouro.bai_nu_sequencial_ini=log_bairro.bai_nu_sequencial \ 65 | WHERE (log_logradouro.loc_nu_sequencial=:loc_nu ) and \ 66 | ((log_bairro.bai_no like :bairro) or (log_logradouro.log_no like :rua ))"); 67 | queryrua->bindValue(":ufe",ufe); 68 | queryrua->bindValue(":loc_nu",loc_nu_sequencial); 69 | queryrua->bindValue( ":rua", "%" + rua + "%" ); 70 | queryrua->bindValue( ":bairro", "%" + rua + "%" ); 71 | 72 | queryrua->exec(); 73 | 74 | modalrua->setQuery(*queryrua); 75 | qDebug()<< ufe <lastError().text(); 76 | 77 | } 78 | 79 | private slots: 80 | void on_comboBox_estados_activated(const QString &arg1); 81 | 82 | void on_pushButton_procurar_clicked(); 83 | 84 | void on_comboBox_cidade_activated(const QString &arg1); 85 | 86 | void on_tableView_enderecos_activated(const QModelIndex &index); 87 | 88 | void on_pushButton_gravar_clicked(); 89 | 90 | void on_tableView_condominio_activated(const QModelIndex &index); 91 | 92 | private: 93 | Ui::Condominio *ui; 94 | Login conn; 95 | QSqlQueryModel *modalestados, *modalcidades, *modalrua, *modalcondominio, *modallog; 96 | QSqlQuery *queryestados, *querycidades, *queryrua, *querycondominio, *querylog; 97 | QString cidade, ufe, estado; 98 | int loc_nu_sequencial=0, log_nu_sequencial=0, id_condominio=0; 99 | bool flag=false; 100 | }; 101 | 102 | #endif // CONDOMINIO_H 103 | -------------------------------------------------------------------------------- /submenu.h: -------------------------------------------------------------------------------- 1 | #ifndef SUBMENU_H 2 | #define SUBMENU_H 3 | 4 | #include 5 | #include "login.h" 6 | 7 | namespace Ui { 8 | class Submenu; 9 | } 10 | 11 | class Submenu : public QDialog 12 | { 13 | Q_OBJECT 14 | 15 | public: 16 | explicit Submenu(QWidget *parent = 0); 17 | ~Submenu(); 18 | 19 | void lemenu(){ 20 | querymenu->prepare("select itemmenu, id_menu from menu where tipomenu=1"); 21 | querymenu->exec(); 22 | modalmenu->setQuery(*querymenu); 23 | id_menu=modalmenu->record(0).value(1).toInt(); 24 | } 25 | 26 | void lecardapio(){ 27 | querycardapio->prepare("SELECT cardapio.id_cardapio, item.item_nome, item.item_descricao, tipo.tipo, item.id_item, tamanho.tamanho FROM cardapio \ 28 | INNER JOIN preco ON cardapio.id_preco=preco.id_preco \ 29 | INNER JOIN item ON preco.id_item=item.id_item \ 30 | INNER JOIN tipo ON preco.id_tipo=tipo.id_tipo \ 31 | INNER JOIN tamanho ON preco.id_tamanho=tamanho.id_tamanho \ 32 | WHERE cardapio.id_menu = :id_menu AND \ 33 | (item.item_nome like :filtrar OR item.item_descricao like :filtrar OR tipo.tipo like :filtrar )"); 34 | 35 | querycardapio->bindValue(":id_menu",id_menu); 36 | querycardapio->bindValue( ":filtrar", "%"+filtrar+"%" ); 37 | 38 | querycardapio->exec(); 39 | modalcardapio->setQuery(*querycardapio); 40 | 41 | } 42 | 43 | void lesubmenu(){ 44 | querysubmenu->prepare("select itemmenu, id_menu from menu where tipomenu>1"); 45 | querysubmenu->exec(); 46 | modelsub->setQuery(*querysubmenu); 47 | } 48 | 49 | void lertipo(){ 50 | querytipo->prepare("select tipo from tipo"); 51 | querytipo->exec(); 52 | modeltipo->setQuery(*querytipo); 53 | } 54 | 55 | void lertamanho(){ 56 | querytamanho->prepare("select tamanho from tamanho"); 57 | querytamanho->exec(); 58 | modaltamanho->setQuery(*querytamanho); 59 | } 60 | 61 | void lesubmenuitens(){ 62 | querysubmenuitens->prepare("SELECT submenu.id_submenu, item.item_nome, tipo.tipo, tamanho.tamanho, menu.itemmenu FROM submenu \ 63 | INNER JOIN menu ON submenu.id_menu=menu.id_menu\ 64 | INNER JOIN cardapio ON submenu.id_cardapio=cardapio.id_cardapio \ 65 | INNER JOIN preco ON cardapio.id_preco=preco.id_preco \ 66 | INNER JOIN item ON preco.id_item=item.id_item \ 67 | INNER JOIN tipo ON preco.id_tipo=tipo.id_tipo \ 68 | INNER JOIN tamanho ON preco.id_tamanho=tamanho.id_tamanho \ 69 | WHERE (item.item_nome like :filtrar2 OR menu.itemmenu like :filtrar2 ) and " 70 | "tipo.tipo like :filtro and tamanho.tamanho like :tamanho"); 71 | querysubmenuitens->bindValue( ":filtrar2", "%"+filtrarsubmenuitens+"%" ); 72 | querysubmenuitens->bindValue( ":filtro", "%"+filtro+"%" ); 73 | querysubmenuitens->bindValue( ":tamanho", "%"+tamanho+"%" ); 74 | querysubmenuitens->exec(); 75 | modelsubmenuitens->setQuery(*querysubmenuitens); 76 | 77 | qDebug() << querysubmenuitens->lastError().text(); 78 | } 79 | 80 | 81 | private slots: 82 | void on_pushButton_inserirsubmenu_clicked(); 83 | 84 | void on_comboBox_menu_activated(const QString &arg1); 85 | 86 | void on_pushButton_filtrar_clicked(); 87 | 88 | void on_pushButton_filtrarsubmenuitens_clicked(); 89 | 90 | void on_pushButton_apagarsubmenuitens_clicked(); 91 | 92 | 93 | void on_comboBox_tipo_activated(const QString &arg1); 94 | 95 | void on_comboBox_tamanho_activated(const QString &arg1); 96 | 97 | private: 98 | Ui::Submenu *ui; 99 | Login conn; 100 | QSqlQueryModel *modalmenu, *modalcardapio, *modelsub, *modelrelacaoitens, *modelsubmenuitens, *modeltipo; 101 | QSqlQuery *querymenu, *querycardapio, *querysubmenu, *queryrelacaoitens, *querysubmenuitens, *querytipo; 102 | QSqlQueryModel *modaltamanho; 103 | QSqlQuery *querytamanho; 104 | int id_menu=0; 105 | QString filtrar, filtrarsubmenuitens, filtro, tamanho; 106 | 107 | }; 108 | 109 | #endif // SUBMENU_H 110 | -------------------------------------------------------------------------------- /login.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Login 4 | 5 | 6 | 7 | 0 8 | 0 9 | 598 10 | 473 11 | 12 | 13 | 14 | Login 15 | 16 | 17 | 18 | 19 | 20 | 200 21 | 10 22 | 191 23 | 151 24 | 25 | 26 | 27 | 28 | 29 | 30 | ../../../sabordelivery/papelaria/SaborDelivery/02-Selo_SaborDelivery/selo_sabordelivery.png 31 | 32 | 33 | true 34 | 35 | 36 | 37 | 38 | 39 | 40 40 | 380 41 | 351 42 | 16 43 | 44 | 45 | 46 | DataBase 47 | 48 | 49 | 50 | 51 | 52 | 60 53 | 180 54 | 491 55 | 171 56 | 57 | 58 | 59 | Entrar com Usuário e Senha 60 | 61 | 62 | 63 | 64 | 160 65 | 130 66 | 191 67 | 22 68 | 69 | 70 | 71 | Login 72 | 73 | 74 | 75 | 76 | 77 | 40 78 | 50 79 | 421 80 | 24 81 | 82 | 83 | 84 | 85 | 86 | 87 | Usuário 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 40 100 | 80 101 | 311 102 | 24 103 | 104 | 105 | 106 | 107 | 108 | 109 | Senha 110 | 111 | 112 | 113 | 114 | 115 | 116 | QLineEdit::Password 117 | 118 | 119 | 120 | 121 | 122 | 123 | label_user 124 | label_pass 125 | label_pic 126 | label_db 127 | lineEdit_user 128 | lineEdit_pass 129 | lineEdit_user 130 | lineEdit_user 131 | label_user 132 | groupBox 133 | 134 | 135 | 136 | 137 | 0 138 | 0 139 | 598 140 | 19 141 | 142 | 143 | 144 | 145 | 146 | TopToolBarArea 147 | 148 | 149 | false 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | -------------------------------------------------------------------------------- /precoentrega.cpp: -------------------------------------------------------------------------------- 1 | #include "precoentrega.h" 2 | #include "ui_precoentrega.h" 3 | #include "qmessagebox.h" 4 | 5 | PrecoEntrega::PrecoEntrega(QWidget *parent) : 6 | QDialog(parent), 7 | ui(new Ui::PrecoEntrega) 8 | { 9 | ui->setupUi(this); 10 | 11 | conn.connOpen(); 12 | 13 | modalentrega=new QSqlQueryModel(); 14 | queryentrega=new QSqlQuery(conn.mydb); 15 | leentrega(filtro); 16 | modalentrega->setHeaderData(3, Qt::Horizontal, tr("Bairro")); 17 | modalentrega->setHeaderData(4, Qt::Horizontal, tr("Cidade")); 18 | modalentrega->setHeaderData(5, Qt::Horizontal, tr("Valor (R$)")); 19 | modalentrega->setHeaderData(6, Qt::Horizontal, tr("%")); 20 | modalentrega->setHeaderData(7, Qt::Horizontal, tr("Taxa Extra (R$)")); 21 | 22 | ui->tableView_entrega->setModel(modalentrega); 23 | ui->tableView_entrega->setColumnHidden(0,true); 24 | ui->tableView_entrega->setColumnHidden(1,true); 25 | ui->tableView_entrega->setColumnHidden(2,true); 26 | ui->tableView_entrega->resizeColumnsToContents(); 27 | ui->tableView_entrega->setItemDelegateForColumn(5, new NumberFormatDelegate(this)); 28 | ui->tableView_entrega->setItemDelegateForColumn(7, new NumberFormatDelegate(this)); 29 | 30 | } 31 | 32 | PrecoEntrega::~PrecoEntrega() 33 | { 34 | delete ui; 35 | } 36 | 37 | void PrecoEntrega::on_pushButton_procurar_clicked() 38 | { 39 | QString procura=ui->lineEdit_procurabairro->text(); 40 | qDebug() << "on_pushButton_procurarcliente"; 41 | 42 | qDebug() << procura; 43 | 44 | leentrega(procura); 45 | 46 | modalentrega->setHeaderData(3, Qt::Horizontal, tr("Bairro")); 47 | modalentrega->setHeaderData(4, Qt::Horizontal, tr("Cidade")); 48 | modalentrega->setHeaderData(5, Qt::Horizontal, tr("Valor (R$)")); 49 | modalentrega->setHeaderData(6, Qt::Horizontal, tr("%")); 50 | modalentrega->setHeaderData(7, Qt::Horizontal, tr("Taxa Extra (R$)")); 51 | 52 | ui->tableView_entrega->setModel(modalentrega); 53 | ui->tableView_entrega->setColumnHidden(0,true); 54 | ui->tableView_entrega->setColumnHidden(1,true); 55 | ui->tableView_entrega->setColumnHidden(2,true); 56 | ui->tableView_entrega->resizeColumnsToContents(); 57 | ui->tableView_entrega->setItemDelegateForColumn(5, new NumberFormatDelegate(this)); 58 | ui->tableView_entrega->setItemDelegateForColumn(7, new NumberFormatDelegate(this)); 59 | 60 | } 61 | 62 | void PrecoEntrega::on_tableView_entrega_activated(const QModelIndex &index) 63 | { 64 | QString celula=ui->tableView_entrega->model()->data(index).toString(); 65 | qDebug() << celula; 66 | int linha=index.row(); 67 | 68 | id_entrega=modalentrega->record(linha).value(0).toInt(); 69 | 70 | ui->label_bairro->setText(modalentrega->record(linha).value(3).toString()); 71 | ui->label_cidade->setText(modalentrega->record(linha).value(4).toString()); 72 | ui->lineEdit_valor->setText(modalentrega->record(linha).value(5).toString()); 73 | ui->lineEdit_percentual->setText(modalentrega->record(linha).value(6).toString()); 74 | ui->lineEdit_extra->setText(modalentrega->record(linha).value(7).toString()); 75 | } 76 | 77 | void PrecoEntrega::on_pushButton_gravar_clicked() 78 | { 79 | QString procura=ui->lineEdit_procurabairro->text(); 80 | queryentrega->prepare("update entrega set valor=:valor, percentual=:percentual, extra=:extra where id_entrega=:id_entrega "); 81 | queryentrega->bindValue(":id_entrega",id_entrega); 82 | queryentrega->bindValue(":valor",ui->lineEdit_valor->text()); 83 | queryentrega->bindValue(":percentual",ui->lineEdit_percentual->text()); 84 | queryentrega->bindValue(":extra",ui->lineEdit_extra->text()); 85 | 86 | if(!queryentrega->exec()){ 87 | QMessageBox::critical(this,tr("Inserir Valor de Entrega"),tr("Erro na gravação de dados!")); 88 | } 89 | else{ 90 | ui->label_bairro->setText(""); 91 | ui->label_cidade->setText(""); 92 | ui->lineEdit_valor->setText(""); 93 | ui->lineEdit_percentual->setText(""); 94 | ui->lineEdit_extra->setText(""); 95 | id_entrega=0; 96 | leentrega(procura); 97 | modalentrega->setHeaderData(3, Qt::Horizontal, tr("Bairro")); 98 | modalentrega->setHeaderData(4, Qt::Horizontal, tr("Cidade")); 99 | modalentrega->setHeaderData(5, Qt::Horizontal, tr("Valor (R$)")); 100 | modalentrega->setHeaderData(6, Qt::Horizontal, tr("%")); 101 | modalentrega->setHeaderData(7, Qt::Horizontal, tr("Taxa Extra (R$)")); 102 | 103 | ui->tableView_entrega->setModel(modalentrega); 104 | ui->tableView_entrega->setColumnHidden(0,true); 105 | ui->tableView_entrega->setColumnHidden(1,true); 106 | ui->tableView_entrega->setColumnHidden(2,true); 107 | ui->tableView_entrega->resizeColumnsToContents(); 108 | ui->tableView_entrega->setItemDelegateForColumn(5, new NumberFormatDelegate(this)); 109 | ui->tableView_entrega->setItemDelegateForColumn(7, new NumberFormatDelegate(this)); 110 | } 111 | 112 | } 113 | -------------------------------------------------------------------------------- /menu.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Menu 4 | 5 | 6 | 7 | 0 8 | 0 9 | 901 10 | 280 11 | 12 | 13 | 14 | Dialog 15 | 16 | 17 | 18 | 19 | 10 20 | 10 21 | 421 22 | 131 23 | 24 | 25 | 26 | Gestão de Menus 27 | 28 | 29 | 30 | 31 | 10 32 | 30 33 | 271 34 | 22 35 | 36 | 37 | 38 | 39 | 40 | 41 | 190 42 | 90 43 | 102 44 | 20 45 | 46 | 47 | 48 | Opcional 49 | 50 | 51 | 52 | 53 | 54 | 10 55 | 90 56 | 61 57 | 20 58 | 59 | 60 | 61 | Menu 62 | 63 | 64 | 65 | 66 | 67 | 90 68 | 90 69 | 102 70 | 20 71 | 72 | 73 | 74 | Adicional 75 | 76 | 77 | 78 | 79 | 80 | 80 81 | 60 82 | 61 83 | 22 84 | 85 | 86 | 87 | 88 | 89 | 90 | 10 91 | 60 92 | 61 93 | 21 94 | 95 | 96 | 97 | Max. Sel. 98 | 99 | 100 | 101 | 102 | 103 | 240 104 | 60 105 | 61 106 | 22 107 | 108 | 109 | 110 | 111 | 112 | 113 | 160 114 | 60 115 | 71 116 | 21 117 | 118 | 119 | 120 | Sequência 121 | 122 | 123 | 124 | 125 | 126 | 320 127 | 30 128 | 91 129 | 22 130 | 131 | 132 | 133 | Novo 134 | 135 | 136 | 137 | 138 | 139 | 320 140 | 60 141 | 91 142 | 22 143 | 144 | 145 | 146 | Limpar 147 | 148 | 149 | 150 | 151 | 152 | 320 153 | 90 154 | 91 155 | 22 156 | 157 | 158 | 159 | Cancelar 160 | 161 | 162 | 163 | 164 | 165 | 166 | 440 167 | 10 168 | 331 169 | 261 170 | 171 | 172 | 173 | 174 | 175 | 176 | 780 177 | 10 178 | 111 179 | 51 180 | 181 | 182 | 183 | Apagar 184 | Seleção 185 | 186 | 187 | 188 | 189 | 190 | 191 | -------------------------------------------------------------------------------- /userinfo.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Userinfo 4 | 5 | 6 | 7 | 0 8 | 0 9 | 710 10 | 421 11 | 12 | 13 | 14 | Informações de Usuário 15 | 16 | 17 | 18 | 19 | 40 20 | 380 21 | 421 22 | 16 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 600 33 | 20 34 | 101 35 | 22 36 | 37 | 38 | 39 | Salvar 40 | 41 | 42 | 43 | 44 | 45 | 10 46 | 110 47 | 691 48 | 301 49 | 50 | 51 | 52 | 53 | 54 | 55 | 600 56 | 80 57 | 101 58 | 22 59 | 60 | 61 | 62 | Apagar 63 | 64 | 65 | 66 | 67 | 68 | 70 69 | 80 70 | 211 71 | 22 72 | 73 | 74 | 75 | 76 | 77 | 78 | 600 79 | 50 80 | 101 81 | 22 82 | 83 | 84 | 85 | Limpar 86 | 87 | 88 | 89 | 90 | 91 | 70 92 | 20 93 | 161 94 | 22 95 | 96 | 97 | 98 | 99 | 100 | 101 | 17 102 | 20 103 | 51 104 | 22 105 | 106 | 107 | 108 | Usuário 109 | 110 | 111 | 112 | 113 | 114 | 380 115 | 80 116 | 181 117 | 22 118 | 119 | 120 | 121 | 122 | 123 | 124 | 322 125 | 80 126 | 42 127 | 22 128 | 129 | 130 | 131 | Senha 132 | 133 | 134 | 135 | 136 | 137 | 290 138 | 20 139 | 271 140 | 22 141 | 142 | 143 | 144 | 145 | 146 | 147 | 242 148 | 20 149 | 36 150 | 22 151 | 152 | 153 | 154 | Nome 155 | 156 | 157 | 158 | 159 | 160 | 13 161 | 50 162 | 31 163 | 22 164 | 165 | 166 | 167 | Fone 168 | 169 | 170 | 171 | 172 | 173 | 70 174 | 50 175 | 161 176 | 22 177 | 178 | 179 | 180 | 181 | 182 | 183 | 290 184 | 50 185 | 271 186 | 22 187 | 188 | 189 | 190 | 191 | 192 | 193 | 251 194 | 50 195 | 33 196 | 22 197 | 198 | 199 | 200 | Email 201 | 202 | 203 | 204 | 205 | 206 | 207 | -------------------------------------------------------------------------------- /userinfo.cpp: -------------------------------------------------------------------------------- 1 | #include "userinfo.h" 2 | #include "ui_userinfo.h" 3 | #include 4 | #include "dateformatdelegate.h" 5 | 6 | Userinfo::Userinfo(QWidget *parent) : 7 | QDialog(parent), 8 | ui(new Ui::Userinfo) 9 | { 10 | ui->setupUi(this); 11 | 12 | conn.connOpen(); 13 | 14 | modeluser=new QSqlQueryModel(); 15 | queryuser=new QSqlQuery(conn.mydb); 16 | 17 | lerusuario(); 18 | 19 | ui->tableView->setModel(modeluser); 20 | ui->tableView->setColumnHidden(0,true); // id 21 | ui->tableView->setColumnHidden(7,true); // password 22 | ui->tableView->setColumnHidden(8,true); // ativo 23 | ui->tableView->setItemDelegateForColumn(5, new DateFormatDelegate(this)); 24 | ui->tableView->setItemDelegateForColumn(6, new JobFunctionColumnDelegate(this)); 25 | 26 | for(int i=0;icomboBox_funcao->addItem(funcao[i], i+1); 28 | 29 | index_funcao=2; 30 | ui->comboBox_funcao->setCurrentIndex(index_funcao); 31 | 32 | } 33 | 34 | Userinfo::~Userinfo() 35 | { 36 | delete ui; 37 | conn.connClose(); 38 | } 39 | 40 | void Userinfo::on_pushButton_save_clicked() 41 | { 42 | QString nome, email, senha, fone, user; 43 | int funcao; 44 | 45 | user=ui->lineEdit_user->text(); 46 | senha=ui->lineEdit_pass->text(); 47 | email=ui->lineEdit_email->text(); 48 | fone=ui->lineEdit_fone->text(); 49 | nome=ui->lineEdit_nome->text(); 50 | 51 | funcao=ui->comboBox_funcao->currentData().toInt(); 52 | 53 | qDebug() << "1" <prepare("insert into usuario (username, nome, email, password, fone, tipo)" 57 | "values (:username, :nome, :email, :password, :fone, :tipo)"); 58 | else{ 59 | queryuser->prepare("update usuario set username=:username, nome=:nome, " 60 | "email=:email, password=:password, fone=:fone, tipo=:tipo \ 61 | where id_usuario=:id_user "); 62 | queryuser->bindValue(":id_user",id_user); 63 | } 64 | qDebug() << "2"; 65 | 66 | queryuser->bindValue(":username",user); 67 | queryuser->bindValue(":nome", nome); 68 | queryuser->bindValue(":email", email); 69 | queryuser->bindValue(":password",senha); 70 | queryuser->bindValue(":fone", fone); 71 | queryuser->bindValue(":tipo", funcao); 72 | 73 | ui->pushButton_save->setText("Salvar"); 74 | id_user=0; 75 | qDebug() << "3"; 76 | 77 | if(queryuser->exec()){ 78 | QMessageBox::critical(this,tr("Salvar"),tr("Dados inseridos com sucesso!")); 79 | } 80 | else{ 81 | QMessageBox::critical(this,tr("error::"),queryuser->lastError().text()); 82 | } 83 | 84 | lerusuario(); 85 | ui->tableView->setModel(modeluser); 86 | ui->tableView->setColumnHidden(0,true); 87 | ui->tableView->setColumnHidden(7,true); 88 | ui->tableView->setItemDelegateForColumn(6, new JobFunctionColumnDelegate(this)); 89 | 90 | } 91 | 92 | void Userinfo::on_tableView_activated(const QModelIndex &index) 93 | { 94 | QString name=ui->tableView->model()->data(index).toString(); 95 | QString nome, email, senha, fone, user; 96 | int row=index.row(); 97 | 98 | id_user=modeluser->record(row).value(0).toInt(); 99 | ui->lineEdit_user->setText(modeluser->record(row).value(1).toString()); 100 | ui->lineEdit_pass->setText(modeluser->record(row).value(7).toString()); 101 | ui->lineEdit_email->setText(modeluser->record(row).value(4).toString()); 102 | ui->lineEdit_fone->setText(modeluser->record(row).value(3).toString()); 103 | ui->lineEdit_nome->setText(modeluser->record(row).value(2).toString()); 104 | 105 | ui->pushButton_save->setText("Atualizar"); 106 | 107 | int indice = ui->comboBox_funcao->findData(modeluser->record(row).value(6).toInt()); 108 | if ( indice != -1 ) { // -1 for not found 109 | ui->comboBox_funcao->setCurrentIndex(indice); 110 | } 111 | } 112 | 113 | void Userinfo::on_pushButton_delete_clicked() 114 | { 115 | QString nome, email, senha, fone, user; 116 | 117 | user=ui->lineEdit_user->text(); 118 | senha=ui->lineEdit_pass->text(); 119 | email=ui->lineEdit_email->text(); 120 | fone=ui->lineEdit_fone->text(); 121 | nome=ui->lineEdit_nome->text(); 122 | 123 | queryuser->prepare("delete from usuario where username=?"); 124 | queryuser->addBindValue(user); 125 | if (QMessageBox::Yes == QMessageBox(QMessageBox::Information, "Titulo", "Confirma?", QMessageBox::Yes|QMessageBox::No).exec()) 126 | { 127 | if(queryuser->exec()){ 128 | QMessageBox::critical(this,tr("Apagar"),tr("Dados apagados com sucesso!")); 129 | } 130 | else{ 131 | QMessageBox::critical(this,tr("error::"),queryuser->lastError().text()); 132 | } 133 | } 134 | } 135 | 136 | void Userinfo::on_comboBox_funcao_activated(const QString &arg1) 137 | { 138 | index_funcao=ui->comboBox_funcao->currentData().toInt(); 139 | } 140 | 141 | void Userinfo::on_pushButton_limpar_clicked() 142 | { 143 | index_funcao=2; 144 | ui->comboBox_funcao->setCurrentIndex(index_funcao); 145 | 146 | id_user=0; 147 | ui->lineEdit_user->setText(""); 148 | ui->lineEdit_pass->setText(""); 149 | ui->lineEdit_email->setText(""); 150 | ui->lineEdit_fone->setText(""); 151 | ui->lineEdit_nome->setText(""); 152 | 153 | ui->pushButton_save->setText("Salvar"); 154 | 155 | } 156 | -------------------------------------------------------------------------------- /precoentrega.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | PrecoEntrega 4 | 5 | 6 | 7 | 0 8 | 0 9 | 589 10 | 613 11 | 12 | 13 | 14 | Dialog 15 | 16 | 17 | 18 | 19 | 470 20 | 140 21 | 101 22 | 22 23 | 24 | 25 | 26 | Procurar 27 | 28 | 29 | 30 | 31 | 32 | 20 33 | 170 34 | 551 35 | 431 36 | 37 | 38 | 39 | 40 | 41 | 42 | 20 43 | 140 44 | 441 45 | 22 46 | 47 | 48 | 49 | <html><head/><body><p>Entre com bairro ou rua</p></body></html> 50 | 51 | 52 | true 53 | 54 | 55 | 56 | 57 | 58 | 120 59 | 110 60 | 113 61 | 22 62 | 63 | 64 | 65 | 000.00 66 | 67 | 68 | Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter 69 | 70 | 71 | false 72 | 73 | 74 | 75 | 76 | 77 | 20 78 | 20 79 | 341 80 | 16 81 | 82 | 83 | 84 | 85 | 11 86 | 75 87 | true 88 | 89 | 90 | 91 | [bairro] 92 | 93 | 94 | 95 | 96 | 97 | 380 98 | 20 99 | 59 100 | 14 101 | 102 | 103 | 104 | [cidade] 105 | 106 | 107 | 108 | 109 | 110 | 20 111 | 50 112 | 59 113 | 20 114 | 115 | 116 | 117 | Valor: R$ 118 | 119 | 120 | 121 | 122 | 123 | 20 124 | 80 125 | 81 126 | 21 127 | 128 | 129 | 130 | Percentual: 131 | 132 | 133 | 134 | 135 | 136 | 20 137 | 110 138 | 101 139 | 21 140 | 141 | 142 | 143 | Taxa Extra: R$ 144 | 145 | 146 | 147 | 148 | 149 | 120 150 | 80 151 | 113 152 | 22 153 | 154 | 155 | 156 | 00 157 | 158 | 159 | Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter 160 | 161 | 162 | 163 | 164 | 165 | false 166 | 167 | 168 | 169 | 170 | 171 | 120 172 | 50 173 | 113 174 | 22 175 | 176 | 177 | 178 | 000.00 179 | 180 | 181 | Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter 182 | 183 | 184 | 185 | 186 | 187 | false 188 | 189 | 190 | 191 | 192 | 193 | 470 194 | 40 195 | 101 196 | 31 197 | 198 | 199 | 200 | Gravar 201 | 202 | 203 | 204 | 205 | 206 | 207 | -------------------------------------------------------------------------------- /submenu.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Submenu 4 | 5 | 6 | 7 | 0 8 | 0 9 | 965 10 | 451 11 | 12 | 13 | 14 | Configurar SubMenu 15 | 16 | 17 | 18 | 19 | 20 20 | 20 21 | 931 22 | 421 23 | 24 | 25 | 26 | 1 27 | 28 | 29 | 30 | Itens e Sub-Menus 31 | 32 | 33 | 34 | 35 | 10 36 | 60 37 | 641 38 | 321 39 | 40 | 41 | 42 | 43 | 0 44 | 0 45 | 46 | 47 | 48 | 49 | 50 | 51 | 10 52 | 30 53 | 241 54 | 22 55 | 56 | 57 | 58 | 59 | 60 | 61 | 570 62 | 30 63 | 81 64 | 22 65 | 66 | 67 | 68 | Filtrar 69 | 70 | 71 | 72 | 73 | 74 | 272 75 | 30 76 | 291 77 | 22 78 | 79 | 80 | 81 | true 82 | 83 | 84 | 85 | 86 | 87 | 660 88 | 60 89 | 256 90 | 321 91 | 92 | 93 | 94 | 95 | 96 | 97 | 660 98 | 30 99 | 251 100 | 22 101 | 102 | 103 | 104 | 105 | 0 106 | 0 107 | 108 | 109 | 110 | Inserir SubMenus 111 | 112 | 113 | 114 | 115 | 116 | Cardápio Montado 117 | 118 | 119 | 120 | 121 | 20 122 | 40 123 | 751 124 | 341 125 | 126 | 127 | 128 | 129 | 0 130 | 0 131 | 132 | 133 | 134 | 135 | 136 | 137 | 360 138 | 10 139 | 321 140 | 22 141 | 142 | 143 | 144 | true 145 | 146 | 147 | 148 | 149 | 150 | 690 151 | 10 152 | 81 153 | 22 154 | 155 | 156 | 157 | Filtrar 158 | 159 | 160 | 161 | 162 | 163 | 780 164 | 40 165 | 121 166 | 61 167 | 168 | 169 | 170 | Apagar 171 | seleção 172 | 173 | 174 | 175 | 176 | 177 | 190 178 | 10 179 | 161 180 | 22 181 | 182 | 183 | 184 | 185 | 186 | 187 | 20 188 | 10 189 | 161 190 | 22 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | -------------------------------------------------------------------------------- /pedidos.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Pedidos 4 | 5 | 6 | 7 | 0 8 | 0 9 | 823 10 | 541 11 | 12 | 13 | 14 | Pedidos 15 | 16 | 17 | 18 | 19 | 10 20 | 10 21 | 791 22 | 521 23 | 24 | 25 | 26 | 0 27 | 28 | 29 | 30 | Entrada 31 | 32 | 33 | 34 | 35 | 10 36 | 10 37 | 621 38 | 191 39 | 40 | 41 | 42 | 43 | 44 | 45 | 640 46 | 10 47 | 141 48 | 31 49 | 50 | 51 | 52 | Marcar Preparo 53 | 54 | 55 | 56 | 57 | 58 | 640 59 | 50 60 | 141 61 | 22 62 | 63 | 64 | 65 | 66 | 67 | 68 | 10 69 | 210 70 | 621 71 | 271 72 | 73 | 74 | 75 | 76 | 77 | 78 | Em preparo 79 | 80 | 81 | 82 | 83 | 10 84 | 10 85 | 611 86 | 231 87 | 88 | 89 | 90 | 91 | 92 | 93 | 630 94 | 40 95 | 151 96 | 31 97 | 98 | 99 | 100 | Marcar Pronto 101 | 102 | 103 | 104 | 105 | 106 | 630 107 | 10 108 | 151 109 | 22 110 | 111 | 112 | 113 | 114 | 115 | 116 | 10 117 | 250 118 | 611 119 | 231 120 | 121 | 122 | 123 | 124 | 125 | 126 | Entrega 127 | 128 | 129 | 130 | 131 | 650 132 | 10 133 | 131 134 | 41 135 | 136 | 137 | 138 | Marcar Entrega 139 | 140 | 141 | 142 | 143 | 144 | 650 145 | 60 146 | 131 147 | 22 148 | 149 | 150 | 151 | 152 | 153 | 154 | 10 155 | 10 156 | 631 157 | 211 158 | 159 | 160 | 161 | 162 | 163 | 164 | 10 165 | 230 166 | 631 167 | 251 168 | 169 | 170 | 171 | 172 | 173 | 174 | Finalizados 175 | 176 | 177 | 178 | 179 | 10 180 | 10 181 | 651 182 | 251 183 | 184 | 185 | 186 | 187 | 188 | 189 | 10 190 | 270 191 | 651 192 | 211 193 | 194 | 195 | 196 | 197 | 198 | 199 | 670 200 | 10 201 | 111 202 | 22 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | -------------------------------------------------------------------------------- /preco.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Preco 4 | 5 | 6 | 7 | 0 8 | 0 9 | 1062 10 | 586 11 | 12 | 13 | 14 | Cadastrar Preço de Item 15 | 16 | 17 | 18 | 19 | 10 20 | 20 21 | 1041 22 | 551 23 | 24 | 25 | 26 | Gerenciar preço de itens 27 | 28 | 29 | 30 | 31 | 20 32 | 60 33 | 451 34 | 471 35 | 36 | 37 | 38 | 39 | 40 | 41 | 390 42 | 30 43 | 81 44 | 22 45 | 46 | 47 | 48 | Filtrar 49 | 50 | 51 | 52 | 53 | 54 | 20 55 | 30 56 | 361 57 | 22 58 | 59 | 60 | 61 | true 62 | 63 | 64 | 65 | 66 | 67 | 490 68 | 60 69 | 51 70 | 21 71 | 72 | 73 | 74 | Preço 75 | 76 | 77 | 78 | 79 | 80 | 890 81 | 70 82 | 131 83 | 41 84 | 85 | 86 | 87 | Apagar 88 | Preço 89 | 90 | 91 | 92 | 93 | 94 | 940 95 | 120 96 | 81 97 | 22 98 | 99 | 100 | 101 | Filtrar 102 | 103 | 104 | 105 | 106 | 107 | 760 108 | 30 109 | 21 110 | 21 111 | 112 | 113 | 114 | ID 115 | 116 | 117 | 118 | 119 | 120 | 710 121 | 90 122 | 171 123 | 22 124 | 125 | 126 | 127 | 128 | 129 | 130 | 780 131 | 30 132 | 91 133 | 22 134 | 135 | 136 | 137 | 138 | 139 | 140 | 490 141 | 30 142 | 251 143 | 21 144 | 145 | 146 | 147 | 148 | 75 149 | true 150 | 151 | 152 | 153 | [ Item selecionado ] 154 | 155 | 156 | 157 | 158 | 159 | 530 160 | 60 161 | 211 162 | 22 163 | 164 | 165 | 166 | 000.00 167 | 168 | 169 | Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter 170 | 171 | 172 | 173 | 174 | 175 | 490 176 | 120 177 | 441 178 | 22 179 | 180 | 181 | 182 | true 183 | 184 | 185 | 186 | 187 | 188 | 490 189 | 90 190 | 211 191 | 22 192 | 193 | 194 | 195 | 196 | 197 | 198 | 890 199 | 30 200 | 131 201 | 31 202 | 203 | 204 | 205 | Inserir 206 | 207 | 208 | 209 | 210 | 211 | 490 212 | 150 213 | 531 214 | 381 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | -------------------------------------------------------------------------------- /cardapio.cpp: -------------------------------------------------------------------------------- 1 | #include "cardapio.h" 2 | #include "ui_cardapio.h" 3 | #include "qmessagebox.h" 4 | 5 | Cardapio::Cardapio(QWidget *parent) : 6 | QDialog(parent), 7 | ui(new Ui::Cardapio) 8 | { 9 | ui->setupUi(this); 10 | conn.connOpen(); 11 | 12 | modalmenu=new QSqlQueryModel(); 13 | querymenu=new QSqlQuery(conn.mydb); 14 | querymenu->prepare("select itemmenu, tipomenu, id_menu from menu"); 15 | querymenu->exec(); 16 | modalmenu->setQuery(*querymenu); 17 | ui->listView_menu->setModel(modalmenu); 18 | 19 | querypreco=new QSqlQuery(conn.mydb); 20 | modalpreco2=new QSqlQueryModel(); 21 | 22 | lerpreco(); 23 | modalpreco2->setHeaderData(1, Qt::Horizontal, tr("Item Menu")); 24 | modalpreco2->setHeaderData(2, Qt::Horizontal, tr("Tipo")); 25 | modalpreco2->setHeaderData(3, Qt::Horizontal, tr("Tamanho")); 26 | modalpreco2->setHeaderData(4, Qt::Horizontal, tr("Preço")); 27 | 28 | ui->tableView_itens->setModel(modalpreco2); 29 | ui->tableView_itens->setItemDelegateForColumn(4, new NumberFormatDelegate(this)); 30 | ui->tableView_itens->setColumnHidden(0,true); 31 | procurar=""; 32 | 33 | querycardapio=new QSqlQuery(conn.mydb); 34 | modalcardapio2=new QSqlQueryModel(); 35 | // modalcardapio2->setQuery(*querycardapio); 36 | filtrarcardapio=""; 37 | lercardapio(); 38 | 39 | modalcardapio2->setHeaderData(1, Qt::Horizontal, tr("Item Menu")); 40 | modalcardapio2->setHeaderData(2, Qt::Horizontal, tr("Tipo")); 41 | modalcardapio2->setHeaderData(3, Qt::Horizontal, tr("Tamanho")); 42 | modalcardapio2->setHeaderData(4, Qt::Horizontal, tr("Preço")); 43 | 44 | ui->tableView_menu->setModel(modalcardapio2); 45 | ui->tableView_menu->setItemDelegateForColumn(4, new NumberFormatDelegate(this)); 46 | ui->tableView_menu->setColumnHidden(0,true); 47 | ui->tableView_menu->setColumnHidden(5,true); 48 | ui->tableView_menu->setColumnHidden(6,true); 49 | } 50 | 51 | Cardapio::~Cardapio() 52 | { 53 | delete ui; 54 | conn.connClose(); 55 | } 56 | 57 | void Cardapio::on_pushButton_procurar_clicked() 58 | { 59 | 60 | procurar=ui->lineEdit_procurar->text(); 61 | 62 | lerpreco(); 63 | 64 | ui->tableView_itens->setModel(modalpreco2); 65 | ui->tableView_itens->setColumnHidden(0,true); 66 | 67 | qDebug() << querypreco->lastError().text(); 68 | 69 | } 70 | 71 | void Cardapio::on_listView_menu_activated(const QModelIndex &index) 72 | { 73 | QString celula=ui->listView_menu->model()->data(index).toString(); 74 | int colunas=ui->listView_menu->model()->columnCount(); 75 | int linha=index.row(); 76 | int coluna=index.column(); 77 | 78 | qDebug() << celula; 79 | qDebug() << colunas; 80 | qDebug() << linha; 81 | qDebug() << coluna; 82 | 83 | id_menu=modalmenu->record(linha).value(2).toInt(); 84 | ui->label_menu->setText(modalmenu->record(linha).value(0).toString()); 85 | qDebug() << "id_menu " << id_menu; 86 | 87 | lercardapio(); 88 | ui->tableView_menu->setModel(modalcardapio2); 89 | ui->tableView_menu->setColumnHidden(0,true); 90 | 91 | qDebug() << querycardapio->lastError().text(); 92 | 93 | } 94 | 95 | void Cardapio::on_tableView_itens_activated(const QModelIndex &index) 96 | { 97 | 98 | } 99 | 100 | void Cardapio::on_pushButton_inserircardapio_clicked() 101 | { 102 | int row, id_item, id_preco, linha; 103 | bool inserir; 104 | 105 | if(!id_menu){ 106 | QMessageBox::critical(this,tr("Montar Cardápio"),tr("Favor selecionar um menu!")); 107 | qDebug() << "saiu"; 108 | return; 109 | } 110 | 111 | QModelIndexList indexList = ui->tableView_itens->selectionModel()->selectedIndexes(); 112 | 113 | qDebug()<< indexList; 114 | 115 | querycardapio->prepare("INSERT INTO cardapio (id_menu, id_preco) VALUES(:id_menu, :id_preco)"); 116 | QVariantList listmenu, listpreco; 117 | 118 | inserir=true; 119 | foreach (QModelIndex index, indexList) { 120 | row = index.row(); 121 | id_preco=modalpreco2->record(row).value(0).toInt(); 122 | qDebug() << row << index.column() << id_preco; 123 | id_item=modalpreco2->record(row).value(1).toInt(); 124 | for(linha=0;linharowCount();linha++){ 125 | if(modalcardapio2->record(linha).value(5).toInt()==id_menu && modalcardapio2->record(linha).value(6).toInt()==id_preco ){ 126 | inserir=false; 127 | break; 128 | } 129 | } 130 | if(inserir){ 131 | listmenu << id_menu; 132 | listpreco << id_preco; 133 | } 134 | } 135 | querycardapio->bindValue(":id_menu",listmenu); 136 | querycardapio->bindValue(":id_preco",listpreco); 137 | 138 | if (!querycardapio->execBatch()) { 139 | qDebug() << "erro " << querycardapio->lastError(); 140 | } else { 141 | qDebug() << "sucesso " << querycardapio->executedQuery(); 142 | } 143 | 144 | lercardapio(); 145 | 146 | ui->tableView_menu->setModel(modalcardapio2); 147 | ui->tableView_menu->setColumnHidden(0,true); 148 | 149 | } 150 | 151 | void Cardapio::on_pushButton_apagar_clicked() 152 | { 153 | if(!id_menu){ 154 | QMessageBox::critical(this,tr("Montar Cardápio"),tr("Favor selecionar um menu!")); 155 | qDebug() << "saiu"; 156 | return; 157 | } 158 | 159 | QModelIndexList indexList = ui->tableView_menu->selectionModel()->selectedIndexes(); 160 | int id_cardapio, row; 161 | 162 | querycardapio->prepare("delete from cardapio where id_cardapio=:id_cardapio"); 163 | QVariantList listcardapio; 164 | 165 | foreach (QModelIndex index, indexList) { 166 | row = index.row(); 167 | qDebug() << row << index.column(); 168 | id_cardapio=modalcardapio2->record(row).value(0).toInt(); 169 | listcardapio << id_cardapio; 170 | } 171 | querycardapio->bindValue(":id_cardapio", listcardapio); 172 | 173 | querycardapio->execBatch(); 174 | 175 | qDebug() << querycardapio->lastError().text(); 176 | 177 | lercardapio(); 178 | ui->tableView_menu->setModel(modalcardapio2); 179 | ui->tableView_menu->setColumnHidden(0,true); 180 | 181 | 182 | } 183 | 184 | void Cardapio::on_pushButton_filtrar_cardapio_clicked() 185 | { 186 | filtrarcardapio=ui->lineEdit_filtrar_cardapio->text(); 187 | 188 | lercardapio(); 189 | ui->tableView_menu->setModel(modalcardapio2); 190 | ui->tableView_menu->setColumnHidden(0,true); 191 | 192 | } 193 | -------------------------------------------------------------------------------- /condominio.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Condominio 4 | 5 | 6 | 7 | 0 8 | 0 9 | 800 10 | 589 11 | 12 | 13 | 14 | Cadastro de Condomínios 15 | 16 | 17 | 18 | 19 | 20 20 | 20 21 | 81 22 | 21 23 | 24 | 25 | 26 | Condomínio 27 | 28 | 29 | 30 | 31 | 32 | 420 33 | 50 34 | 59 35 | 21 36 | 37 | 38 | 39 | Número 40 | 41 | 42 | 43 | 44 | 45 | 20 46 | 50 47 | 361 48 | 16 49 | 50 | 51 | 52 | [rua] 53 | 54 | 55 | 56 | 57 | 58 | 20 59 | 131 60 | 761 61 | 171 62 | 63 | 64 | 65 | 66 | 67 | 68 | 20 69 | 340 70 | 131 71 | 22 72 | 73 | 74 | 75 | 76 | 77 | 78 | 160 79 | 320 80 | 59 81 | 14 82 | 83 | 84 | 85 | Cidade 86 | 87 | 88 | 89 | 90 | 91 | 160 92 | 340 93 | 211 94 | 22 95 | 96 | 97 | 98 | 99 | 100 | 101 | 20 102 | 370 103 | 651 104 | 22 105 | 106 | 107 | 108 | <html><head/><body><p>Entre com bairro ou rua</p></body></html> 109 | 110 | 111 | true 112 | 113 | 114 | 115 | 116 | 117 | 20 118 | 400 119 | 761 120 | 171 121 | 122 | 123 | 124 | 125 | 126 | 127 | 680 128 | 370 129 | 101 130 | 22 131 | 132 | 133 | 134 | Procurar 135 | 136 | 137 | 138 | 139 | 140 | 20 141 | 320 142 | 59 143 | 14 144 | 145 | 146 | 147 | Estado 148 | 149 | 150 | 151 | 152 | 153 | 20 154 | 100 155 | 41 156 | 21 157 | 158 | 159 | 160 | Valor: 161 | 162 | 163 | 164 | 165 | 166 | 210 167 | 100 168 | 81 169 | 21 170 | 171 | 172 | 173 | Percentual 174 | 175 | 176 | 177 | 178 | 179 | 400 180 | 100 181 | 41 182 | 21 183 | 184 | 185 | 186 | Extra: 187 | 188 | 189 | 190 | 191 | 192 | 70 193 | 100 194 | 113 195 | 22 196 | 197 | 198 | 199 | 200 | 201 | 202 | 290 203 | 100 204 | 81 205 | 22 206 | 207 | 208 | 209 | 210 | 211 | 212 | 440 213 | 100 214 | 113 215 | 22 216 | 217 | 218 | 219 | 220 | 221 | 222 | 480 223 | 50 224 | 113 225 | 22 226 | 227 | 228 | 229 | 230 | 231 | 232 | 100 233 | 20 234 | 181 235 | 22 236 | 237 | 238 | 239 | 240 | 241 | 242 | 650 243 | 20 244 | 131 245 | 41 246 | 247 | 248 | 249 | Gravar 250 | Condomínio 251 | 252 | 253 | 254 | 255 | 256 | 20 257 | 70 258 | 201 259 | 16 260 | 261 | 262 | 263 | [bairro] 264 | 265 | 266 | 267 | 268 | 269 | 270 | -------------------------------------------------------------------------------- /estabelecimento.cpp: -------------------------------------------------------------------------------- 1 | #include "estabelecimento.h" 2 | #include "ui_estabelecimento.h" 3 | #include 4 | #include 5 | 6 | extern int config; 7 | 8 | Estabelecimento::Estabelecimento(QWidget *parent) : 9 | QDialog(parent), 10 | ui(new Ui::Estabelecimento) 11 | { 12 | ui->setupUi(this); 13 | 14 | conn.connOpen(); 15 | 16 | modalloja=new QSqlQueryModel(); 17 | queryloja=new QSqlQuery(conn.mydb); 18 | 19 | lerloja(); 20 | 21 | ui->lineEdit_nomeloja->setText(modalloja->record(0).value(0).toString()); 22 | ui->lineEdit_nomerua->setText(modalloja->record(0).value(1).toString()); 23 | ui->lineEdit_numero->setText(modalloja->record(0).value(2).toString()); 24 | 25 | ui->label_bairro->setText(modalloja->record(0).value(3).toString()); 26 | ui->label_cidade->setText(modalloja->record(0).value(4).toString()); 27 | ui->label_estado->setText(modalloja->record(0).value(5).toString()); 28 | ui->label_cep->setText(modalloja->record(0).value(6).toString()); 29 | ui->textEdit_fone->setText(modalloja->record(0).value(7).toString()); 30 | ui->lineEdit_inscrest->setText(modalloja->record(0).value(8).toString()); 31 | ui->lineEdit_cnpj->setText(modalloja->record(0).value(9).toString()); 32 | ui->lineEdit_site->setText(modalloja->record(0).value(10).toString()); 33 | ui->lineEdit_facebook->setText(modalloja->record(0).value(11).toString()); 34 | 35 | config=modalloja->record(0).value(13).toInt(); 36 | configuracao=config; 37 | 38 | modalestados=new QSqlQueryModel(); 39 | queryestados=new QSqlQuery(conn.mydb); 40 | lerestados(); 41 | ui->comboBox_estados->setModel(modalestados); 42 | 43 | modalcidade=new QSqlQueryModel(); 44 | querycidade=new QSqlQuery(conn.mydb); 45 | 46 | modalruas=new QSqlQueryModel(); 47 | queryruas=new QSqlQuery(conn.mydb); 48 | 49 | } 50 | 51 | Estabelecimento::~Estabelecimento() 52 | { 53 | delete ui; 54 | } 55 | 56 | void Estabelecimento::on_comboBox_estados_activated(const QString &arg1) 57 | { 58 | estado=arg1; 59 | lercidades(arg1); 60 | ufe_sg=modalestados->record(ui->comboBox_estados->currentIndex()).value(1).toString(); 61 | 62 | ui->comboBox_cidades->clear(); 63 | for(int i=0;irowCount();i++){ qDebug() <comboBox_cidades->addItem(modalcidade->record(i).value(0).toString(), modalcidade->record(i).value(1).toInt()); 65 | } 66 | qDebug() << cidade << ufe_sg; 67 | } 68 | 69 | void Estabelecimento::on_pushButton_procurar_clicked() 70 | { 71 | 72 | QString rua=ui->lineEdit_procurarua->text(); 73 | qDebug() << "on_pushButton_procurar"; 74 | 75 | qDebug() << rua; 76 | qDebug() << estado; 77 | qDebug() << loc_nu_sequencial; 78 | 79 | lerruas(loc_nu_sequencial, rua); 80 | 81 | modalruas->setHeaderData(0, Qt::Horizontal, tr("Rua")); 82 | modalruas->setHeaderData(1, Qt::Horizontal, tr("Bairro")); 83 | modalruas->setHeaderData(2, Qt::Horizontal, tr("CEP")); 84 | 85 | ui->tableView->setModel(modalruas); 86 | 87 | } 88 | 89 | void Estabelecimento::on_tableView_activated(const QModelIndex &index) 90 | { 91 | qDebug() << "tableView_activated"; 92 | 93 | QString celula=ui->tableView->model()->data(index).toString(); 94 | int colunas=ui->tableView->model()->columnCount(); 95 | int linha=index.row(); 96 | int coluna=index.column(); 97 | 98 | qDebug() << celula; 99 | qDebug() << colunas; 100 | qDebug() << linha; 101 | qDebug() << coluna; 102 | 103 | ui->lineEdit_nomerua->setText(modalruas->record(linha).value(0).toString()); 104 | ui->label_cep->setText(modalruas->record(linha).value(2).toString()); 105 | ui->label_bairro->setText(modalruas->record(linha).value(1).toString()); 106 | ui->label_cidade->setText(cidade); 107 | ui->label_estado->setText(ufe_sg); 108 | } 109 | 110 | void Estabelecimento::on_pushButton_cancelar_clicked() 111 | { 112 | close(); 113 | } 114 | 115 | void Estabelecimento::on_pushButton_salvar_clicked() 116 | { 117 | 118 | qDebug()<< "pushButton_salvar"; 119 | 120 | if(!modalloja->rowCount()){ 121 | queryloja->prepare("insert into loja (nome, endereco, numero, bairro, cidade, estado, fone, inscrest, cnpj, site, facebook, cep, config)" 122 | "values (:nomeloja, :nomerua, :numero, :bairro, :cidade, :estado, :fone, :inscrest,:cnpj,:site,:facebook, :cep, :config) "); 123 | 124 | qDebug()<<"insert"; 125 | } 126 | else{ 127 | int id_loja=modalloja->record(0).value(12).toInt(); 128 | queryloja->prepare("update loja set nome=:nomeloja, endereco=:nomerua, numero=:numero, bairro=:bairro, \ 129 | cidade=:cidade, estado=:estado, fone=:fone, inscrest=:inscrest, cnpj=:cnpj, \ 130 | site=:site, facebook=:facebook, cep=:cep, config=:config \ 131 | where id_loja=:id_loja "); 132 | 133 | queryloja->bindValue(":id_loja",id_loja); 134 | } 135 | 136 | queryloja->bindValue(":nomeloja",ui->lineEdit_nomeloja->text()); 137 | queryloja->bindValue(":nomerua",ui->lineEdit_nomerua->text()); 138 | 139 | queryloja->bindValue(":numero",ui->lineEdit_numero->text()); 140 | queryloja->bindValue(":bairro",ui->label_bairro->text()); 141 | queryloja->bindValue(":cidade",ui->label_cidade->text()); 142 | queryloja->bindValue(":estado",ui->label_estado->text()); 143 | queryloja->bindValue(":fone",ui->textEdit_fone->toPlainText()); 144 | queryloja->bindValue(":inscrest",ui->lineEdit_inscrest->text()); 145 | queryloja->bindValue(":cnpj",ui->lineEdit_cnpj->text()); 146 | queryloja->bindValue(":site",ui->lineEdit_site->text()); 147 | queryloja->bindValue(":facebook",ui->lineEdit_facebook->text()); 148 | queryloja->bindValue(":cep",ui->label_cep->text()); 149 | queryloja->bindValue(":config",configuracao); 150 | 151 | 152 | if(queryloja->exec()){ 153 | config=configuracao; 154 | QMessageBox::critical(this,tr("Editar"),tr("Dados alterados com sucesso!")); 155 | } 156 | else{ 157 | QMessageBox::critical(this,tr("error::"),queryloja->lastError().text()); 158 | } 159 | 160 | } 161 | 162 | void Estabelecimento::on_comboBox_cidades_activated(const QString &arg1) 163 | { 164 | filtro=ui->lineEdit_procurarua->text(); 165 | cidade=arg1; 166 | loc_nu_sequencial=ui->comboBox_cidades->itemData(ui->comboBox_cidades->currentIndex()).toInt(); 167 | lerruas(loc_nu_sequencial, filtro); 168 | 169 | modalruas->setHeaderData(0, Qt::Horizontal, tr("Rua")); 170 | modalruas->setHeaderData(1, Qt::Horizontal, tr("Bairro")); 171 | modalruas->setHeaderData(2, Qt::Horizontal, tr("CEP")); 172 | 173 | ui->tableView->setModel(modalruas); 174 | 175 | } 176 | 177 | void Estabelecimento::on_radioButton_entregavalor_clicked() 178 | { 179 | configuracao=configuracao & ~(1 << ENTREGA); 180 | qDebug()<setupUi(this); 10 | conn.connOpen(); 11 | 12 | modalmenu=new QSqlQueryModel(); 13 | querymenu=new QSqlQuery(conn.mydb); 14 | 15 | lemenu(); 16 | 17 | ui->comboBox_menu->setModel(modalmenu); 18 | 19 | modalcardapio=new QSqlQueryModel(); 20 | querycardapio=new QSqlQuery(conn.mydb); 21 | 22 | filtrar=""; 23 | 24 | lecardapio(); 25 | 26 | modalcardapio->setHeaderData(1, Qt::Horizontal, tr("Item Menu")); 27 | modalcardapio->setHeaderData(2, Qt::Horizontal, tr("Descrição do Item")); 28 | modalcardapio->setHeaderData(3, Qt::Horizontal, tr("Tipo")); 29 | modalcardapio->setHeaderData(5, Qt::Horizontal, tr("Tamanho")); 30 | 31 | ui->tableView_itens->setModel(modalcardapio); 32 | ui->tableView_itens->resizeColumnsToContents(); 33 | ui->tableView_itens->setColumnHidden(0,true); 34 | ui->tableView_itens->setColumnHidden(4,true); 35 | 36 | modelsub=new QSqlQueryModel(); 37 | querysubmenu=new QSqlQuery(conn.mydb); 38 | lesubmenu(); 39 | ui->listView_submenu->setModel(modelsub); 40 | 41 | modelsubmenuitens=new QSqlQueryModel(); 42 | querysubmenuitens=new QSqlQuery(conn.mydb); 43 | lesubmenuitens(); 44 | 45 | modelsubmenuitens->setHeaderData(1, Qt::Horizontal, tr("Item Menu")); 46 | modelsubmenuitens->setHeaderData(2, Qt::Horizontal, tr("Tipo")); 47 | modelsubmenuitens->setHeaderData(3, Qt::Horizontal, tr("Tamanho")); 48 | modelsubmenuitens->setHeaderData(4, Qt::Horizontal, tr("Sub-Menu")); 49 | 50 | ui->tableView_submenuitens->setModel(modelsubmenuitens); 51 | ui->tableView_submenuitens->setColumnHidden(0,true); 52 | ui->tableView_submenuitens->resizeColumnsToContents(); 53 | filtrarsubmenuitens=""; 54 | 55 | modeltipo=new QSqlQueryModel(); 56 | querytipo=new QSqlQuery(conn.mydb); 57 | lertipo(); 58 | ui->comboBox_tipo->addItem("Tipos", "" ); 59 | for(int i=0;irowCount();i++){ 60 | ui->comboBox_tipo->addItem(modeltipo->record(i).value(0).toString(), modeltipo->record(i).value(0).toString() ); 61 | } 62 | 63 | modaltamanho=new QSqlQueryModel(); 64 | querytamanho=new QSqlQuery(conn.mydb); 65 | lertamanho(); 66 | ui->comboBox_tamanho->addItem("Tamanhos", "" ); 67 | for(int i=0;irowCount();i++){ 68 | ui->comboBox_tamanho->addItem(modaltamanho->record(i).value(0).toString(), modaltamanho->record(i).value(0).toString()); 69 | } 70 | } 71 | 72 | Submenu::~Submenu() 73 | { 74 | delete ui; 75 | conn.close(); 76 | } 77 | 78 | void Submenu::on_pushButton_inserirsubmenu_clicked() 79 | { 80 | 81 | int rowitem, rowsub, iditem, idsubmenu, i, nrelacoes; 82 | QVariantList listitem, listsubmenu; 83 | bool insererelacao; 84 | 85 | QSqlQueryModel *modelrelacaoitens; 86 | QSqlQuery *queryrelacaoitens; 87 | 88 | modelrelacaoitens=new QSqlQueryModel(); 89 | queryrelacaoitens=new QSqlQuery(conn.mydb); 90 | 91 | qDebug() << "item"; 92 | 93 | QModelIndexList indexListitens = ui->tableView_itens->selectionModel()->selectedIndexes(); 94 | QModelIndexList indexListsubmenu = ui->listView_submenu->selectionModel()->selectedIndexes(); 95 | 96 | querysubmenu->prepare("INSERT INTO submenu (id_cardapio, id_menu) VALUES(:id_cardapio, :id_menu)"); 97 | 98 | // nrelacoes=modelrelacaoitens->rowCount(); 99 | qDebug() << "item"; 100 | 101 | foreach (QModelIndex indexItem, indexListitens) { 102 | rowitem = indexItem.row(); 103 | iditem=modalcardapio->record(rowitem).value(0).toInt(); 104 | 105 | queryrelacaoitens->prepare("select id_item, id_menu from submenu where id_item=:iditem"); 106 | queryrelacaoitens->bindValue(":iditem", iditem); 107 | queryrelacaoitens->exec(); 108 | modelrelacaoitens->setQuery(*queryrelacaoitens); 109 | 110 | qDebug() << "item" << rowitem << indexItem.column() << iditem; 111 | 112 | insererelacao=true; 113 | 114 | foreach (QModelIndex indexSubmenu, indexListsubmenu) { 115 | rowsub = indexSubmenu.row(); 116 | idsubmenu=modelsub->record(rowsub).value(1).toInt(); 117 | 118 | for(i=0;irecord(i).value(0).toInt()==iditem && modelrelacaoitens->record(i).value(1).toInt()==idsubmenu){ 120 | insererelacao=false; 121 | break; 122 | } 123 | } 124 | 125 | if(insererelacao){ 126 | listitem << iditem; 127 | listsubmenu << idsubmenu; 128 | } 129 | qDebug() << "submenu" << rowitem << indexSubmenu.column() << idsubmenu; 130 | } 131 | } 132 | querysubmenu->bindValue(":id_cardapio",listitem); 133 | querysubmenu->bindValue(":id_menu",listsubmenu); 134 | 135 | if (!querysubmenu->execBatch()) { 136 | qDebug() << "erro " << querysubmenu->lastError(); 137 | } else { 138 | qDebug() << "sucesso " << querysubmenu->executedQuery(); 139 | 140 | lesubmenuitens(); 141 | ui->tableView_submenuitens->setModel(modelsubmenuitens); 142 | } 143 | 144 | } 145 | 146 | void Submenu::on_comboBox_menu_activated(const QString &arg1) 147 | { 148 | int i, nlinhas; 149 | QString str; 150 | 151 | qDebug() << "comboBox_menu" << arg1; 152 | 153 | nlinhas=modalmenu->rowCount(); 154 | 155 | for(i=0;irecord(i).value(0).toString(); 157 | qDebug()<< i<< str; 158 | if(str==arg1){ 159 | id_menu=modalmenu->record(i).value(1).toInt(); 160 | qDebug() << "idmenu" << id_menu; 161 | 162 | } 163 | } 164 | qDebug()<< nlinhas << id_menu; 165 | 166 | lecardapio(); 167 | 168 | ui->tableView_itens->setModel(modalcardapio); 169 | ui->tableView_itens->setColumnHidden(0,true); 170 | ui->tableView_itens->setColumnHidden(4,true); 171 | ui->tableView_itens->resizeColumnsToContents(); 172 | 173 | } 174 | 175 | void Submenu::on_pushButton_filtrar_clicked() 176 | { 177 | filtrar=ui->lineEdit_filtrar->text(); 178 | qDebug() << filtrar; 179 | lecardapio(); 180 | 181 | ui->tableView_itens->setModel(modalcardapio); 182 | ui->tableView_itens->setColumnHidden(0,true); 183 | ui->tableView_itens->setColumnHidden(4,true); 184 | 185 | } 186 | 187 | void Submenu::on_pushButton_filtrarsubmenuitens_clicked() 188 | { 189 | filtrarsubmenuitens=ui->lineEdit_filtrarsubmenuitens->text(); 190 | qDebug() << filtrarsubmenuitens; 191 | lesubmenuitens(); 192 | 193 | 194 | } 195 | 196 | void Submenu::on_pushButton_apagarsubmenuitens_clicked() 197 | { 198 | /* 199 | if(!id_menu){ 200 | QMessageBox::critical(this,tr("Montar Cardápio"),tr("Favor selecionar um menu!")); 201 | qDebug() << "saiu"; 202 | return; 203 | } 204 | */ 205 | QModelIndexList indexList = ui->tableView_submenuitens->selectionModel()->selectedIndexes(); 206 | int id_submenuitens, row; 207 | 208 | querysubmenuitens->prepare("delete from submenu where id_submenu=:id_submenu"); 209 | QVariantList listsubmenu; 210 | 211 | foreach (QModelIndex index, indexList) { 212 | row = index.row(); 213 | qDebug() << row << index.column(); 214 | id_submenuitens=modelsubmenuitens->record(row).value(0).toInt(); 215 | listsubmenu << id_submenuitens; 216 | } 217 | querysubmenuitens->bindValue(":id_submenu", listsubmenu); 218 | 219 | querysubmenuitens->execBatch(); 220 | 221 | lesubmenuitens(); 222 | 223 | ui->tableView_submenuitens->setModel(modelsubmenuitens); 224 | //ui->tableView_menu->setColumnHidden(0,true); 225 | 226 | 227 | } 228 | 229 | 230 | void Submenu::on_comboBox_tipo_activated(const QString &arg1) 231 | { 232 | filtro=ui->comboBox_tipo->currentData().toString(); 233 | 234 | lesubmenuitens(); 235 | 236 | } 237 | 238 | void Submenu::on_comboBox_tamanho_activated(const QString &arg1) 239 | { 240 | tamanho=ui->comboBox_tamanho->currentData().toString(); 241 | lesubmenuitens(); 242 | } 243 | -------------------------------------------------------------------------------- /condominio.cpp: -------------------------------------------------------------------------------- 1 | #include "condominio.h" 2 | #include "ui_condominio.h" 3 | 4 | 5 | Condominio::Condominio(QWidget *parent) : 6 | QDialog(parent), 7 | ui(new Ui::Condominio) 8 | { 9 | ui->setupUi(this); 10 | 11 | conn.connOpen(); 12 | 13 | queryestados=new QSqlQuery(conn.mydb); 14 | modalestados=new QSqlQueryModel(); 15 | 16 | lerestados(); 17 | ui->comboBox_estados->setModel(modalestados); 18 | ufe=queryestados->value(1).toString(); 19 | estado=queryestados->value(0).toString(); 20 | 21 | querycidades=new QSqlQuery(conn.mydb); 22 | modalcidades=new QSqlQueryModel(); 23 | 24 | lecidades(); 25 | ui->comboBox_cidade->setModel(modalcidades); 26 | 27 | queryrua=new QSqlQuery(conn.mydb); 28 | modalrua=new QSqlQueryModel(); 29 | 30 | querycondominio=new QSqlQuery(conn.mydb); 31 | modalcondominio=new QSqlQueryModel(); 32 | 33 | lecondominio(); 34 | modalcondominio->setHeaderData(1, Qt::Horizontal, tr("Nome do Condomínio")); 35 | modalcondominio->setHeaderData(2, Qt::Horizontal, tr("Rua")); 36 | modalcondominio->setHeaderData(3, Qt::Horizontal, tr("Número")); 37 | modalcondominio->setHeaderData(4, Qt::Horizontal, tr("Bairro")); 38 | modalcondominio->setHeaderData(5, Qt::Horizontal, tr("Valor (R$)")); 39 | modalcondominio->setHeaderData(6, Qt::Horizontal, tr("%")); 40 | modalcondominio->setHeaderData(7, Qt::Horizontal, tr("Taxa Extra (R$)")); 41 | 42 | ui->tableView_condominio->setModel(modalcondominio); 43 | ui->tableView_condominio->setColumnHidden(0,true); 44 | ui->tableView_condominio->setColumnHidden(8,true); 45 | ui->tableView_condominio->resizeColumnsToContents(); 46 | ui->tableView_condominio->setItemDelegateForColumn(5, new NumberFormatDelegate(this)); 47 | ui->tableView_condominio->setItemDelegateForColumn(7, new NumberFormatDelegate(this)); 48 | 49 | querylog=new QSqlQuery(conn.mydb); 50 | modallog=new QSqlQueryModel(); 51 | } 52 | 53 | Condominio::~Condominio() 54 | { 55 | delete ui; 56 | 57 | conn.close(); 58 | } 59 | 60 | void Condominio::on_comboBox_estados_activated(const QString &arg1) 61 | { 62 | 63 | estado=arg1; 64 | for(int i=0;irowCount();i++) 65 | if(modalestados->record(i).value(0)==estado){ 66 | ufe=modalestados->record(i).value(1).toString(); 67 | break; 68 | } 69 | modalcidades->clear(); 70 | querycidades->clear(); 71 | lecidades(); 72 | 73 | ui->comboBox_cidade->setModel(modalcidades); 74 | 75 | 76 | } 77 | 78 | void Condominio::on_pushButton_procurar_clicked() 79 | { 80 | QString rua=ui->lineEdit_procurarua->text(); 81 | qDebug() << "on_pushButton_procurar"; 82 | 83 | leruas(rua); 84 | ui->tableView_enderecos->setModel(modalrua); 85 | 86 | QTableView *teste=new QTableView(); 87 | teste->setModel(modalcondominio); 88 | teste->show(); 89 | 90 | } 91 | 92 | void Condominio::on_comboBox_cidade_activated(const QString &arg1) 93 | { 94 | qDebug() << "on_comboBoxcidade_activated"; 95 | 96 | QString str=""; 97 | 98 | cidade=arg1; 99 | qDebug() << cidade; 100 | 101 | for(int i=0;irowCount();i++){ 102 | qDebug() << modalcidades->record(i).value(0).toString(); 103 | if(modalcidades->record(i).value(0).toString()==cidade){ 104 | loc_nu_sequencial=modalcidades->record(i).value(2).toInt(); 105 | break; 106 | } 107 | } 108 | leruas(str); 109 | 110 | modalrua->setHeaderData(0, Qt::Horizontal, tr("Tipo")); 111 | modalrua->setHeaderData(1, Qt::Horizontal, tr("Nome da Rua")); 112 | modalrua->setHeaderData(2, Qt::Horizontal, tr("CEP")); 113 | modalrua->setHeaderData(3, Qt::Horizontal, tr("Bairro")); 114 | 115 | ui->tableView_enderecos->setModel(modalrua); 116 | 117 | ui->tableView_enderecos->setColumnHidden(2,true); 118 | ui->tableView_enderecos->setColumnHidden(4,true); 119 | ui->tableView_enderecos->setColumnHidden(5,true); 120 | ui->tableView_enderecos->resizeColumnsToContents(); 121 | 122 | 123 | } 124 | 125 | void Condominio::on_tableView_enderecos_activated(const QModelIndex &index) 126 | { 127 | qDebug() << "tableView enderecos_activated"; 128 | 129 | QString celula=ui->tableView_enderecos->model()->data(index).toString(); 130 | int colunas=ui->tableView_enderecos->model()->columnCount(); 131 | int linha=index.row(); 132 | int coluna=index.column(); 133 | 134 | qDebug() << celula; 135 | qDebug() << colunas; 136 | qDebug() << linha; 137 | qDebug() << coluna; 138 | 139 | // ui->label_tipolog->setText(modalrua->record(linha).value(0).toString()); 140 | ui->lineEdit_nome->setText(""); 141 | ui->lineEdit_numero->setText(""); 142 | ui->lineEdit_perc->setText(""); 143 | ui->lineEdit_valor->setText(""); 144 | ui->lineEdit_extra->setText(""); 145 | ui->label_rua->setText(modalrua->record(linha).value(1).toString()); 146 | ui->label_bairro->setText(modalrua->record(linha).value(3).toString()); 147 | log_nu_sequencial=modalrua->record(linha).value(5).toInt(); 148 | 149 | 150 | } 151 | 152 | void Condominio::on_pushButton_gravar_clicked() 153 | { 154 | if(!flag){ 155 | querycondominio->prepare("insert into condominio (log_nu_sequencial, nome_condo, numero, valor, percentual, extra)" 156 | "values (:log_nu, :nomecondo, :numero, :valor, :percentual, :extra) "); 157 | } 158 | else{ 159 | querycondominio->prepare("update condominio set nome_condo=:nomecondo, numero=:numero, valor=:valor, percentual=:percentual, extra=:extra \ 160 | where id_condominio=:id_condominio "); 161 | querycondominio->bindValue(":id_condominio",id_condominio); 162 | } 163 | 164 | querycondominio->bindValue(":log_nu",log_nu_sequencial); 165 | querycondominio->bindValue(":nomecondo",ui->lineEdit_nome->text()); 166 | querycondominio->bindValue(":numero",ui->lineEdit_numero->text()); 167 | querycondominio->bindValue(":valor",ui->lineEdit_valor->text()); 168 | querycondominio->bindValue(":percentual",ui->lineEdit_perc->text()); 169 | querycondominio->bindValue(":extra",ui->lineEdit_extra->text()); 170 | 171 | querycondominio->exec(); 172 | 173 | lecondominio(); 174 | ui->tableView_condominio->setModel(modalcondominio); 175 | ui->lineEdit_nome->setText(""); 176 | ui->lineEdit_numero->setText(""); 177 | ui->lineEdit_valor->setText(""); 178 | ui->lineEdit_perc->setText(""); 179 | ui->lineEdit_extra->setText(""); 180 | 181 | flag=false; 182 | id_condominio=0; 183 | 184 | ui->pushButton_gravar->setText("Gravar\nCondomínio"); 185 | 186 | } 187 | 188 | void Condominio::on_tableView_condominio_activated(const QModelIndex &index) 189 | { 190 | flag=true; 191 | qDebug() << "tableView enderecos_activated"; 192 | 193 | QString celula=ui->tableView_condominio->model()->data(index).toString(); 194 | int colunas=ui->tableView_condominio->model()->columnCount(); 195 | int linha=index.row(); 196 | int coluna=index.column(); 197 | 198 | qDebug() << celula; 199 | qDebug() << colunas; 200 | qDebug() << linha; 201 | qDebug() << coluna; 202 | 203 | log_nu_sequencial=modalcondominio->record(linha).value(8).toInt(); 204 | lerlogradouro(log_nu_sequencial); 205 | 206 | ui->label_rua->setText(modallog->record(0).value(2).toString()); 207 | ui->label_bairro->setText(modallog->record(0).value(4).toString()); 208 | 209 | id_condominio=modalcondominio->record(linha).value(0).toInt(); 210 | ui->lineEdit_nome->setText(modalcondominio->record(linha).value(1).toString()); 211 | ui->label_rua->setText(modalcondominio->record(linha).value(2).toString()); 212 | ui->lineEdit_numero->setText(modalcondominio->record(linha).value(3).toString()); 213 | ui->label_bairro->setText(modalcondominio->record(linha).value(4).toString()); 214 | ui->lineEdit_valor->setText(modalcondominio->record(linha).value(5).toString()); 215 | ui->lineEdit_perc->setText(modalcondominio->record(linha).value(6).toString()); 216 | ui->lineEdit_extra->setText(modalcondominio->record(linha).value(7).toString()); 217 | 218 | ui->pushButton_gravar->setText("Atualizar\nCondomínio"); 219 | 220 | } 221 | -------------------------------------------------------------------------------- /pedidos.h: -------------------------------------------------------------------------------- 1 | #ifndef PEDIDOS_H 2 | #define PEDIDOS_H 3 | 4 | #include 5 | #include "login.h" 6 | #include "constants.h" 7 | #include "numberformatdelegate.h" 8 | #include "timeformatdelegate.h" 9 | #include "modopagtodelegate.h" 10 | 11 | #define COL_ID 0 12 | #define COL_TIPO COL_ID+1 13 | #define COL_HORA COL_TIPO+1 14 | #define COL_QTDE COL_HORA+1 15 | #define COL_ITNOME COL_QTDE+1 16 | #define COL_ITMENU COL_ITNOME+1 17 | #define COL_TAM COL_ITMENU+1 18 | #define COL_OBS COL_TAM+1 19 | 20 | #define COL_PREP 5 21 | #define WGDT_QTDE 0 22 | #define WGDT_ID 1 23 | #define WGDT_ITEM 2 24 | #define WGDT_TIPO 3 25 | #define WGDT_TAM 4 26 | #define WGDT_OBS 5 27 | 28 | 29 | 30 | namespace Ui { 31 | class Pedidos; 32 | } 33 | 34 | class Pedidos : public QDialog 35 | { 36 | Q_OBJECT 37 | 38 | public: 39 | explicit Pedidos(QWidget *parent = 0); 40 | ~Pedidos(); 41 | 42 | void lerpedidos_user(QString caixa, QString cozinha, QString entrega, int status, QSqlQuery *qry, QSqlQueryModel *mdl){ 43 | if(caixa=="" && cozinha=="" && entrega==""){ 44 | switch (status) { 45 | case ST_ENTRADA: 46 | qry->prepare("select pedido.id_pedido, pedido.user_caixa, log_bairro.bai_no, pedido.desconto, " 47 | "pedido.entrega, pedido.total, pedido.pagamento, pedido.troco, pedido.horario," 48 | " pedido.id_endereco from pedido " 49 | "inner join entrega on pedido.id_endereco=entrega.id_entrega " 50 | "inner join log_bairro on entrega.bai_nu_sequencial=log_bairro.bai_nu_sequencial " 51 | "where status=:status"); 52 | break; 53 | case ST_PREPARO: 54 | qry->prepare("select pedido.id_pedido, pedido.user_cozinha, log_bairro.bai_no, pedido.desconto, " 55 | "pedido.entrega, pedido.total, pedido.pagamento, pedido.troco, pedido.horario," 56 | " pedido.id_endereco from pedido " 57 | "inner join entrega on pedido.id_endereco=entrega.id_entrega " 58 | "inner join log_bairro on entrega.bai_nu_sequencial=log_bairro.bai_nu_sequencial " 59 | "where status=:status"); 60 | break; 61 | case ST_PRONTO: 62 | qry->prepare("select pedido.id_pedido, pedido.user_entrega, log_bairro.bai_no, pedido.desconto, " 63 | "pedido.entrega, pedido.total, pedido.pagamento, pedido.troco, pedido.horario," 64 | " pedido.id_endereco from pedido " 65 | "inner join entrega on pedido.id_endereco=entrega.id_entrega " 66 | "inner join log_bairro on entrega.bai_nu_sequencial=log_bairro.bai_nu_sequencial " 67 | "where status=:status"); 68 | break; 69 | case ST_ENTREGUE: 70 | qry->prepare("select pedido.id_pedido, pedido.user_entrega, log_bairro.bai_no, pedido.desconto, " 71 | "pedido.entrega, pedido.total, pedido.pagamento, pedido.troco, pedido.horario," 72 | " id_endereco from pedido " 73 | "inner join entrega on pedido.id_endereco=entrega.id_entrega " 74 | "inner join log_bairro on entrega.bai_nu_sequencial=log_bairro.bai_nu_sequencial " 75 | "where status=:status"); 76 | break; 77 | } 78 | } 79 | 80 | if(caixa!="" && cozinha=="" && entrega==""){ 81 | qry->prepare("select pedido.id_pedido, pedido.user_caixa, log_bairro.bai_no, pedido.desconto, " 82 | "pedido.entrega, pedido.total, pedido.pagamento, pedido.troco, pedido.horario," 83 | " pedido.id_endereco from pedido " 84 | "inner join entrega on pedido.id_endereco=entrega.id_entrega " 85 | "inner join log_bairro on entrega.bai_nu_sequencial=log_bairro.bai_nu_sequencial " 86 | "where status=:status and user_caixa=:id"); 87 | qry->bindValue(":id", caixa); 88 | } 89 | if(caixa=="" && cozinha!="" && entrega==""){ 90 | qry->prepare("select pedido.id_pedido, pedido.user_cozinha, log_bairro.bai_no, pedido.desconto, " 91 | "pedido.entrega, pedido.total, pedido.pagamento, pedido.troco, pedido.horario," 92 | " pedido.id_endereco from pedido " 93 | "inner join entrega on pedido.id_endereco=entrega.id_entrega " 94 | "inner join log_bairro on entrega.bai_nu_sequencial=log_bairro.bai_nu_sequencial " 95 | "where status=:status and user_cozinha=:id"); 96 | qry->bindValue(":id", cozinha); 97 | } 98 | if(caixa=="" && cozinha=="" && entrega!=""){ 99 | qry->prepare("select pedido.id_pedido, pedido.user_entrega, log_bairro.bai_no, pedido.desconto, " 100 | " pedido.entrega, pedido.total, pedido.pagamento, pedido.troco, pedido.horario," 101 | " pedido.id_endereco from pedido " 102 | "inner join entrega on pedido.id_endereco=entrega.id_entrega " 103 | "inner join log_bairro on entrega.bai_nu_sequencial=log_bairro.bai_nu_sequencial " 104 | "where status=:status and user_entrega=:id"); 105 | qry->bindValue(":id", entrega); 106 | } 107 | qry->bindValue(":status", status); 108 | qry->exec(); 109 | mdl->setQuery(*qry); 110 | } 111 | 112 | void lerdetalhes(const int idpedido, QSqlQuery *qry, QSqlQueryModel *mdl){ 113 | qry->prepare("select preco.id, menu.tipomenu, pedido_detalhe.hora, pedido_detalhe.qtde, item.item_nome, menu.itemmenu, " 114 | " tamanho.tamanho, pedido_detalhe.obs from pedido_detalhe \ 115 | inner join cardapio on pedido_detalhe.id_cardapio=cardapio.id_cardapio \ 116 | inner join menu on cardapio.id_menu=menu.id_menu \ 117 | inner join preco on cardapio.id_preco=preco.id_preco \ 118 | inner join item on preco.id_item=item.id_item \ 119 | inner join tamanho on preco.id_tamanho=tamanho.id_tamanho \ 120 | where pedido_detalhe.id_pedido=:idpedido " 121 | "order by pedido_detalhe.hora asc, menu.tipomenu asc"); 122 | qry->bindValue(":idpedido", idpedido); 123 | qry->exec(); 124 | mdl->setQuery(*qry); 125 | 126 | qDebug()<<"ler detalhes error " << idpedido << qry->lastError().text(); 127 | } 128 | 129 | void lercolab(){ 130 | querycolab->prepare("select * from usuario"); 131 | querycolab->exec(); 132 | modalcolab->setQuery(*querycolab); 133 | 134 | qDebug()<< querycolab->lastError().text(); 135 | 136 | } 137 | 138 | 139 | private slots: 140 | 141 | void on_tableView_pedidos_activated(const QModelIndex &index); 142 | 143 | void on_pushButton_marcarcozinha_clicked(); 144 | 145 | void on_comboBox_cozinha_activated(const QString &arg1); 146 | 147 | void on_comboBox_entrega_activated(const QString &arg1); 148 | 149 | void on_pushButton_entrega_clicked(); 150 | 151 | void on_tableView_preparo_activated(const QModelIndex &index); 152 | 153 | void on_comboBox_cozinha_2_activated(const QString &arg1); 154 | 155 | void on_pushButton_marcarcozinha_2_clicked(); 156 | 157 | void showdetalhe(int); 158 | 159 | void mostrapedidos(int); 160 | 161 | void on_tableView_entrega_activated(const QModelIndex &index); 162 | 163 | void on_tableView_final_activated(const QModelIndex &index); 164 | 165 | void on_comboBox_final_activated(const QString &arg1); 166 | 167 | private: 168 | Ui::Pedidos *ui; 169 | Login conn; 170 | QSqlQuery *querypedidos, *querydetalhes, *querycolab; 171 | QSqlQueryModel *modalpedidos, *modaldetalhes, *modalcolab; 172 | QSqlQuery *querypreparo, *querypreparodetalhe, *queryentrega, *queryfinal; 173 | QSqlQueryModel *modalpreparo, *modalpreparodetalhe, *modalentrega, *modalfinal; 174 | QSqlQueryModel *modalentregadetalhe, *modalfinaldetalhe; 175 | QSqlQuery *queryentregadetalhe, *queryfinaldetalhe; 176 | int id_pedido=0, id_cozinha=0, id_entrega=0, id_preparo=0; 177 | bool flagcozinha=false, flagentrega=false; 178 | QString user_cozinha, user_caixa, user_entrega; 179 | }; 180 | 181 | #endif // PEDIDOS_H 182 | -------------------------------------------------------------------------------- /menu.cpp: -------------------------------------------------------------------------------- 1 | #include "menu.h" 2 | #include "ui_menu.h" 3 | #include "qmessagebox.h" 4 | 5 | Menu::Menu(QWidget *parent) : 6 | QDialog(parent), 7 | ui(new Ui::Menu) 8 | { 9 | ui->setupUi(this); 10 | conn.connOpen(); 11 | 12 | modalmenu=new QSqlQueryModel(); 13 | querymenu=new QSqlQuery(conn.mydb); 14 | lermenu(); 15 | //ui->listView_menu->setModel(modalmenu); 16 | //ui->tableView_menu->setModel(modalmenu); 17 | 18 | QString str; 19 | int nl=modalmenu->rowCount(); 20 | ui->tableWidget_menu->setRowCount(nl); 21 | ui->tableWidget_menu->setColumnCount(4); 22 | 23 | ui->tableWidget_menu->setHorizontalHeaderItem(0, new QTableWidgetItem("Nome Menu")); 24 | ui->tableWidget_menu->setHorizontalHeaderItem(1, new QTableWidgetItem("Tipo Menu")); 25 | ui->tableWidget_menu->setHorizontalHeaderItem(2, new QTableWidgetItem("Seleções")); 26 | ui->tableWidget_menu->setHorizontalHeaderItem(3, new QTableWidgetItem("Ordem")); 27 | 28 | for (int r=0; rrecord(r).value(c).toString(); 31 | if(c==2){ 32 | switch (str.toInt()) { 33 | case 1: 34 | str="Menu"; 35 | break; 36 | case 2: 37 | str="Adicional"; 38 | break; 39 | case 4: 40 | str="Opcional"; 41 | break; 42 | } 43 | } 44 | ui->tableWidget_menu->setItem( r, c-1, new QTableWidgetItem(str)); 45 | } 46 | } 47 | 48 | Menu::~Menu() 49 | { 50 | delete ui; 51 | conn.close(); 52 | } 53 | 54 | void Menu::on_pushButton_cancelar_clicked() 55 | { 56 | close(); 57 | } 58 | 59 | void Menu::on_pushButton_novo_clicked() 60 | { 61 | QString opc_str; 62 | 63 | if((ui->radioButton_menu->isChecked() || ui->radioButton_adicional->isChecked() || ui->radioButton_opcional->isChecked()) && ui->lineEdit_menu->text()!=""){ 64 | 65 | if(id_menu){ 66 | querymenu->prepare("update menu set tipomenu=:tipomenu, itemmenu=:itemmenu, opcoes=:opcoes, sequencia=:sequencia where id_menu=:id_menu"); 67 | querymenu->bindValue(":id_menu",id_menu); 68 | } 69 | else 70 | querymenu->prepare("insert into menu (itemmenu, tipomenu, opcoes, sequencia) values (:itemmenu, :tipomenu, :opcoes, :sequencia)"); 71 | int tipomenu=1; 72 | 73 | ui->radioButton_menu->setChecked(false); 74 | if(ui->radioButton_menu->isChecked()){ 75 | opcoes=0; 76 | } 77 | 78 | if(ui->radioButton_adicional->isChecked()){ 79 | tipomenu=2; // adicional 80 | opc_str=ui->lineEdit_maxsel->text(); 81 | opcoes=opc_str.toInt(); 82 | ui->radioButton_adicional->setChecked(false); 83 | } 84 | else if(ui->radioButton_opcional->isChecked()){ 85 | tipomenu=4; // opcional 86 | opcoes=1; 87 | ui->radioButton_opcional->setChecked(false); 88 | } 89 | 90 | querymenu->bindValue(":tipomenu",tipomenu); 91 | querymenu->bindValue(":itemmenu", ui->lineEdit_menu->text()); 92 | querymenu->bindValue(":opcoes", opcoes); 93 | querymenu->bindValue(":sequencia", ui->lineEdit_sequencia->text()); 94 | querymenu->exec(); 95 | 96 | qDebug()<lastError().text(); 97 | 98 | lermenu(); 99 | 100 | ui->tableWidget_menu->clear(); 101 | QString str; 102 | int nl=modalmenu->rowCount(); 103 | ui->tableWidget_menu->setRowCount(nl); 104 | ui->tableWidget_menu->setColumnCount(4); 105 | 106 | ui->tableWidget_menu->setHorizontalHeaderItem(0, new QTableWidgetItem("Nome Menu")); 107 | ui->tableWidget_menu->setHorizontalHeaderItem(1, new QTableWidgetItem("Tipo Menu")); 108 | ui->tableWidget_menu->setHorizontalHeaderItem(2, new QTableWidgetItem("Seleções")); 109 | ui->tableWidget_menu->setHorizontalHeaderItem(3, new QTableWidgetItem("Ordem")); 110 | 111 | for (int r=0; rrecord(r).value(c).toString(); 114 | if(c==2){ 115 | switch (str.toInt()) { 116 | case 1: 117 | str="Menu"; 118 | break; 119 | case 2: 120 | str="Adicional"; 121 | break; 122 | case 4: 123 | str="Opcional"; 124 | break; 125 | } 126 | } 127 | ui->tableWidget_menu->setItem( r, c-1, new QTableWidgetItem(str)); 128 | } 129 | 130 | ui->lineEdit_menu->setText(""); 131 | ui->lineEdit_maxsel->setText(""); 132 | ui->lineEdit_sequencia->setText(""); 133 | ui->pushButton_novo->setText("Novo"); 134 | id_menu=0; 135 | 136 | } 137 | else{ 138 | QMessageBox::critical(this,tr("Selecionar tipo"),tr("Favor selecionar um tipo!")); 139 | } 140 | } 141 | 142 | void Menu::on_pushButton_atualizar_clicked() 143 | { 144 | ui->lineEdit_menu->setText(""); 145 | ui->lineEdit_maxsel->setText(""); 146 | ui->lineEdit_sequencia->setText(""); 147 | ui->pushButton_novo->setText("Novo"); 148 | id_menu=0; 149 | 150 | } 151 | 152 | void Menu::on_radioButton_menu_clicked() 153 | { 154 | ui->lineEdit_maxsel->setEnabled(false); 155 | } 156 | 157 | void Menu::on_radioButton_adicional_clicked() 158 | { 159 | ui->lineEdit_maxsel->setEnabled(true); 160 | } 161 | 162 | void Menu::on_radioButton_opcional_clicked() 163 | { 164 | ui->lineEdit_maxsel->setEnabled(false); 165 | } 166 | 167 | void Menu::on_pushButton_apagar_clicked() 168 | { 169 | QModelIndexList indexList = ui->tableWidget_menu->selectionModel()->selectedIndexes(); 170 | int idmenu, row; 171 | 172 | if (QMessageBox::No == QMessageBox(QMessageBox::Information, "Apagar Menu!", "Confirma?", QMessageBox::Yes|QMessageBox::No).exec()) 173 | return; 174 | 175 | querymenu->prepare("delete from menu where id_menu=:id_menu"); 176 | QVariantList listmenu; 177 | 178 | foreach (QModelIndex index, indexList) { 179 | row = index.row(); 180 | qDebug() << row << index.column(); 181 | idmenu=modalmenu->record(row).value(0).toInt(); 182 | listmenu << idmenu; 183 | } 184 | querymenu->bindValue(":id_menu", listmenu); 185 | 186 | querymenu->execBatch(); 187 | 188 | qDebug() << querymenu->lastError().text(); 189 | 190 | lermenu(); 191 | ui->tableWidget_menu->clear(); 192 | QString str; 193 | int nl=modalmenu->rowCount(); 194 | ui->tableWidget_menu->setRowCount(nl); 195 | ui->tableWidget_menu->setColumnCount(3); 196 | 197 | ui->tableWidget_menu->setHorizontalHeaderItem(0, new QTableWidgetItem("Nome Menu")); 198 | ui->tableWidget_menu->setHorizontalHeaderItem(1, new QTableWidgetItem("Tipo Menu")); 199 | ui->tableWidget_menu->setHorizontalHeaderItem(2, new QTableWidgetItem("Seleções")); 200 | 201 | for (int r=0; rrecord(r).value(c).toString(); 204 | if(c==2){ 205 | switch (str.toInt()) { 206 | case 1: 207 | str="Menu"; 208 | break; 209 | case 2: 210 | str="Adicional"; 211 | break; 212 | case 4: 213 | str="Opcional"; 214 | break; 215 | } 216 | } 217 | ui->tableWidget_menu->setItem( r, c-1, new QTableWidgetItem(str)); 218 | } 219 | 220 | ui->lineEdit_menu->setText(""); 221 | 222 | ui->radioButton_menu->setChecked(false); 223 | ui->radioButton_adicional->setChecked(false); 224 | ui->radioButton_opcional->setChecked(false); 225 | 226 | } 227 | 228 | void Menu::on_tableWidget_menu_activated(const QModelIndex &index) 229 | { 230 | QString celula=ui->tableWidget_menu->model()->data(index).toString(); 231 | int colunas=ui->tableWidget_menu->model()->columnCount(); 232 | int linha=index.row(); 233 | int coluna=index.column(); 234 | // int opcoes; 235 | 236 | id_menu=modalmenu->record(linha).value(0).toInt(); 237 | // opcoes=modalmenu->record(linha).value(2).toInt(); 238 | ui->lineEdit_menu->setText(modalmenu->record(linha).value(1).toString()); 239 | ui->lineEdit_maxsel->setText(modalmenu->record(linha).value(3).toString()); 240 | ui->lineEdit_sequencia->setText(modalmenu->record(linha).value(4).toString()); 241 | 242 | //qDebug() << (opcoes & 2); 243 | 244 | switch (modalmenu->record(linha).value(2).toInt()) { 245 | case 1: 246 | ui->radioButton_menu->setChecked(true); 247 | ui->lineEdit_maxsel->setEnabled(false); 248 | break; 249 | case 2: 250 | ui->radioButton_adicional->setChecked(true); 251 | break; 252 | case 4: 253 | ui->radioButton_opcional->setChecked(true); 254 | break; 255 | 256 | } 257 | 258 | ui->pushButton_novo->setText("Atualizar"); 259 | 260 | } 261 | -------------------------------------------------------------------------------- /entrega.cpp: -------------------------------------------------------------------------------- 1 | #include "entrega.h" 2 | #include "ui_entrega.h" 3 | #include "qmessagebox.h" 4 | 5 | //extern Login w; 6 | 7 | Entrega::Entrega(QWidget *parent) : 8 | QDialog(parent), 9 | ui(new Ui::Entrega) 10 | { 11 | ui->setupUi(this); 12 | 13 | conn.connOpen(); 14 | 15 | modalestados=new QSqlQueryModel(); 16 | queryestados=new QSqlQuery(conn.mydb); 17 | lerestados(); 18 | ui->comboBox_estados->setModel(modalestados); 19 | 20 | modalcidades=new QSqlQueryModel(); 21 | querycidades=new QSqlQuery(conn.mydb); 22 | 23 | modalbairros=new QSqlQueryModel(); 24 | querybairros=new QSqlQuery(conn.mydb); 25 | 26 | modalentrega=new QSqlQueryModel(); 27 | queryentrega=new QSqlQuery(conn.mydb); 28 | leentrega(filtro); 29 | modalentrega->setHeaderData(3, Qt::Horizontal, tr("Bairro")); 30 | modalentrega->setHeaderData(4, Qt::Horizontal, tr("Cidade")); 31 | modalentrega->setHeaderData(5, Qt::Horizontal, tr("Valor (R$)")); 32 | modalentrega->setHeaderData(6, Qt::Horizontal, tr("%")); 33 | modalentrega->setHeaderData(7, Qt::Horizontal, tr("Taxa Extra (R$)")); 34 | 35 | ui->tableView_entrega->setModel(modalentrega); 36 | ui->tableView_entrega->setColumnHidden(0,true); 37 | ui->tableView_entrega->setColumnHidden(1,true); 38 | ui->tableView_entrega->setColumnHidden(2,true); 39 | ui->tableView_entrega->resizeColumnsToContents(); 40 | ui->tableView_entrega->setItemDelegateForColumn(5, new NumberFormatDelegate(this)); 41 | ui->tableView_entrega->setItemDelegateForColumn(7, new NumberFormatDelegate(this)); 42 | 43 | } 44 | 45 | Entrega::~Entrega() 46 | { 47 | delete ui; 48 | 49 | conn.close(); 50 | } 51 | 52 | void Entrega::on_comboBox_estados_activated(const QString &arg1) 53 | { 54 | querycidades->clear(); 55 | modalcidades->clear(); 56 | lercidades(arg1); 57 | ui->comboBox_cidade->setModel(modalcidades); 58 | 59 | cidade=modalcidades->record(0).value(0).toString(); 60 | estado=modalcidades->record(0).value(1).toString(); 61 | loc_nu_sequencial=modalcidades->record(0).value(2).toInt(); 62 | 63 | qDebug() << cidade << arg1; 64 | 65 | } 66 | 67 | void Entrega::on_comboBox_cidade_activated(const QString &arg1) 68 | { 69 | for(int i=0;irowCount();i++){ 70 | if(arg1==modalcidades->record(i).value(0).toString()){ 71 | cidade=modalcidades->record(i).value(0).toString(); 72 | estado=modalcidades->record(i).value(1).toString(); 73 | loc_nu_sequencial=modalcidades->record(i).value(2).toInt(); 74 | break; 75 | } 76 | } 77 | // querybairros->clear(); 78 | // modalbairros->clear(); 79 | filtro=ui->lineEdit_procurabairro->text(); 80 | lerbairros(loc_nu_sequencial, filtro); 81 | modalbairros->setHeaderData(0, Qt::Horizontal, tr("Bairro")); 82 | ui->tableView_bairros->setModel(modalbairros); 83 | ui->tableView_bairros->resizeColumnsToContents(); 84 | ui->tableView_bairros->setColumnHidden(1,true); 85 | 86 | qDebug() << cidade << arg1; 87 | 88 | } 89 | 90 | void Entrega::on_pushButton_inserirbairros_clicked() 91 | { 92 | QModelIndexList indexList = ui->tableView_bairros->selectionModel()->selectedIndexes(); 93 | QString item; 94 | QVariantList listbairros, listlocalidade; 95 | int nlinhas=indexList.count(); 96 | int row, i; 97 | bool flag; 98 | qDebug()<< "tableview entrega" << nlinhas; 99 | 100 | filtro=ui->lineEdit_procurabairro->text(); 101 | modalentrega->clear(); 102 | leentrega(filtro); 103 | 104 | modalentrega->setHeaderData(3, Qt::Horizontal, tr("Bairro")); 105 | modalentrega->setHeaderData(4, Qt::Horizontal, tr("Cidade")); 106 | modalentrega->setHeaderData(5, Qt::Horizontal, tr("Valor (R$)")); 107 | modalentrega->setHeaderData(6, Qt::Horizontal, tr("%")); 108 | modalentrega->setHeaderData(7, Qt::Horizontal, tr("Taxa Extra (R$)")); 109 | 110 | ui->tableView_entrega->setModel(modalentrega); 111 | ui->tableView_entrega->setColumnHidden(0,true); 112 | ui->tableView_entrega->setColumnHidden(1,true); 113 | ui->tableView_entrega->setColumnHidden(2,true); 114 | ui->tableView_entrega->resizeColumnsToContents(); 115 | ui->tableView_entrega->setItemDelegateForColumn(5, new NumberFormatDelegate(this)); 116 | ui->tableView_entrega->setItemDelegateForColumn(7, new NumberFormatDelegate(this)); 117 | 118 | foreach (QModelIndex index, indexList) { 119 | row=index.row(); 120 | item=modalbairros->record(row).value(1).toString(); 121 | flag=true; 122 | for(i=0;irowCount();i++){ 123 | if(item==modalentrega->record(i).value(1).toString()){ 124 | flag=false; 125 | break; 126 | } 127 | } 128 | if(flag){ 129 | listbairros << item; 130 | listlocalidade << loc_nu_sequencial; 131 | } 132 | } 133 | 134 | queryentrega->prepare("insert into entrega (bai_nu_sequencial, loc_nu_sequencial) values (:bai_nu,:loc_nu)"); 135 | 136 | queryentrega->bindValue(":bai_nu",listbairros); 137 | queryentrega->bindValue(":loc_nu",listlocalidade); 138 | 139 | queryentrega->execBatch(); 140 | 141 | modalentrega->clear(); 142 | leentrega(filtro); 143 | modalentrega->setHeaderData(3, Qt::Horizontal, tr("Bairro")); 144 | modalentrega->setHeaderData(4, Qt::Horizontal, tr("Cidade")); 145 | modalentrega->setHeaderData(5, Qt::Horizontal, tr("Valor (R$)")); 146 | modalentrega->setHeaderData(6, Qt::Horizontal, tr("%")); 147 | modalentrega->setHeaderData(7, Qt::Horizontal, tr("Taxa Extra (R$)")); 148 | 149 | ui->tableView_entrega->setModel(modalentrega); 150 | ui->tableView_entrega->setColumnHidden(0,true); 151 | ui->tableView_entrega->setColumnHidden(1,true); 152 | ui->tableView_entrega->setColumnHidden(2,true); 153 | ui->tableView_entrega->resizeColumnsToContents(); 154 | ui->tableView_entrega->setItemDelegateForColumn(5, new NumberFormatDelegate(this)); 155 | ui->tableView_entrega->setItemDelegateForColumn(7, new NumberFormatDelegate(this)); 156 | } 157 | 158 | void Entrega::on_pushButton_apagar_clicked() 159 | { 160 | QModelIndexList indexList = ui->tableView_entrega->selectionModel()->selectedIndexes(); 161 | QVariantList listentrega; 162 | 163 | int anterior, row, id_entrega, hora=0, tipomenu; 164 | bool flag; 165 | 166 | qDebug() << indexList.count(); 167 | 168 | if(!indexList.count()){ 169 | QMessageBox::critical(this,tr("Seleção"),tr("Nenhum item selecionado")); 170 | return; 171 | } 172 | 173 | queryentrega->prepare("delete from entrega where id_entrega=:id_entrega"); 174 | anterior=-1; 175 | foreach (QModelIndex index, indexList) { 176 | row=index.row(); 177 | qDebug() << "row " << row; 178 | if(anterior!=row){ 179 | id_entrega=modalentrega->record(row).value(0).toInt(); 180 | listentrega << id_entrega; 181 | 182 | } 183 | anterior=row; 184 | } 185 | queryentrega->bindValue(":id_entrega",listentrega); 186 | 187 | if (!queryentrega->execBatch()) { 188 | qDebug() << "erro " << queryentrega->lastError(); 189 | } else { 190 | qDebug() << "sucesso " << queryentrega->executedQuery(); 191 | modalentrega->clear(); 192 | filtro=ui->lineEdit_procurabairro->text(); 193 | leentrega(filtro); 194 | modalentrega->setHeaderData(3, Qt::Horizontal, tr("Bairro")); 195 | modalentrega->setHeaderData(4, Qt::Horizontal, tr("Cidade")); 196 | modalentrega->setHeaderData(5, Qt::Horizontal, tr("Valor (R$)")); 197 | modalentrega->setHeaderData(6, Qt::Horizontal, tr("%")); 198 | modalentrega->setHeaderData(7, Qt::Horizontal, tr("Taxa Extra (R$)")); 199 | 200 | ui->tableView_entrega->setModel(modalentrega); 201 | ui->tableView_entrega->setColumnHidden(0,true); 202 | ui->tableView_entrega->setColumnHidden(1,true); 203 | ui->tableView_entrega->setColumnHidden(2,true); 204 | ui->tableView_entrega->resizeColumnsToContents(); 205 | ui->tableView_entrega->setItemDelegateForColumn(5, new NumberFormatDelegate(this)); 206 | ui->tableView_entrega->setItemDelegateForColumn(7, new NumberFormatDelegate(this)); 207 | 208 | } 209 | 210 | } 211 | 212 | void Entrega::on_pushButton_procurar_clicked() 213 | { 214 | QString procura=ui->lineEdit_procurabairro->text(); 215 | qDebug() << "on_pushButton_procurarcliente"; 216 | 217 | qDebug() << procura; 218 | 219 | lerbairros(loc_nu_sequencial, procura); 220 | leentrega(procura); 221 | 222 | modalentrega->setHeaderData(3, Qt::Horizontal, tr("Bairro")); 223 | modalentrega->setHeaderData(4, Qt::Horizontal, tr("Cidade")); 224 | modalentrega->setHeaderData(5, Qt::Horizontal, tr("Valor (R$)")); 225 | modalentrega->setHeaderData(6, Qt::Horizontal, tr("%")); 226 | modalentrega->setHeaderData(7, Qt::Horizontal, tr("Taxa Extra (R$)")); 227 | 228 | ui->tableView_entrega->setModel(modalentrega); 229 | ui->tableView_entrega->setColumnHidden(0,true); 230 | ui->tableView_entrega->setColumnHidden(1,true); 231 | ui->tableView_entrega->setColumnHidden(2,true); 232 | ui->tableView_entrega->resizeColumnsToContents(); 233 | ui->tableView_entrega->setItemDelegateForColumn(5, new NumberFormatDelegate(this)); 234 | ui->tableView_entrega->setItemDelegateForColumn(7, new NumberFormatDelegate(this)); 235 | 236 | } 237 | -------------------------------------------------------------------------------- /principal.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Principal 4 | 5 | 6 | 7 | 0 8 | 0 9 | 765 10 | 561 11 | 12 | 13 | 14 | Principal 15 | 16 | 17 | 18 | 19 | 20 20 | 20 21 | 91 22 | 21 23 | 24 | 25 | 26 | 27 | 15 28 | 29 | 30 | 31 | Usuário: 32 | 33 | 34 | 35 | 36 | 37 | 330 38 | 20 39 | 341 40 | 21 41 | 42 | 43 | 44 | 45 | 15 46 | 47 | 48 | 49 | nome 50 | 51 | 52 | 53 | 54 | 55 | 110 56 | 20 57 | 141 58 | 21 59 | 60 | 61 | 62 | 63 | 15 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 20 74 | 60 75 | 191 76 | 21 77 | 78 | 79 | 80 | 81 | 15 82 | 83 | 84 | 85 | Função 86 | 87 | 88 | 89 | 90 | 91 | 10 92 | 100 93 | 741 94 | 451 95 | 96 | 97 | 98 | 1 99 | 100 | 101 | 102 | Caixa 103 | 104 | 105 | 106 | 107 | 40 108 | 30 109 | 191 110 | 61 111 | 112 | 113 | 114 | Cadastro de Cliente 115 | 116 | 117 | 118 | 119 | 120 | 40 121 | 110 122 | 191 123 | 61 124 | 125 | 126 | 127 | Venda 128 | 129 | 130 | 131 | 132 | 133 | 40 134 | 190 135 | 191 136 | 51 137 | 138 | 139 | 140 | Pedidos 141 | 142 | 143 | 144 | 145 | 146 | Admin 147 | 148 | 149 | 150 | 151 | 40 152 | 30 153 | 181 154 | 51 155 | 156 | 157 | 158 | Cadastro de Usuário 159 | 160 | 161 | 162 | 163 | 164 | 40 165 | 90 166 | 181 167 | 51 168 | 169 | 170 | 171 | Configuração da Loja 172 | 173 | 174 | 175 | 176 | 177 | 240 178 | 30 179 | 181 180 | 51 181 | 182 | 183 | 184 | Cadastro de Endereço 185 | 186 | 187 | 188 | 189 | 190 | 240 191 | 90 192 | 181 193 | 51 194 | 195 | 196 | 197 | Análise de Vendas 198 | 199 | 200 | 201 | 202 | 203 | Configurar Cardápio 204 | 205 | 206 | 207 | 208 | 40 209 | 100 210 | 181 211 | 51 212 | 213 | 214 | 215 | 216 | 9 217 | 50 218 | false 219 | 220 | 221 | 222 | Cadastrar Menus 223 | 224 | 225 | 226 | 227 | 228 | 260 229 | 30 230 | 181 231 | 51 232 | 233 | 234 | 235 | Cadastrar Preço de Item 236 | 237 | 238 | 239 | 240 | 241 | 40 242 | 30 243 | 181 244 | 51 245 | 246 | 247 | 248 | Cadastrar Produto 249 | 250 | 251 | 252 | 253 | 254 | 40 255 | 170 256 | 181 257 | 51 258 | 259 | 260 | 261 | Montar Cardápio 262 | 263 | 264 | 265 | 266 | 267 | 260 268 | 100 269 | 181 270 | 51 271 | 272 | 273 | 274 | SubMenu 275 | 276 | 277 | 278 | 279 | 280 | 260 281 | 170 282 | 181 283 | 51 284 | 285 | 286 | 287 | Ligar/Desligar itens 288 | 289 | 290 | 291 | 292 | 293 | Entrega 294 | 295 | 296 | 297 | 298 | 40 299 | 30 300 | 181 301 | 51 302 | 303 | 304 | 305 | Aŕea de Entrega 306 | 307 | 308 | 309 | 310 | 311 | 240 312 | 30 313 | 181 314 | 51 315 | 316 | 317 | 318 | Condomínios 319 | 320 | 321 | 322 | 323 | 324 | 440 325 | 30 326 | 181 327 | 51 328 | 329 | 330 | 331 | Preços de Entrega 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | -------------------------------------------------------------------------------- /preco.cpp: -------------------------------------------------------------------------------- 1 | #include "preco.h" 2 | #include "ui_preco.h" 3 | #include "qmessagebox.h" 4 | 5 | Preco::Preco(QWidget *parent) : 6 | QDialog(parent), 7 | ui(new Ui::Preco) 8 | { 9 | ui->setupUi(this); 10 | 11 | conn.connOpen(); 12 | 13 | modalitem=new QSqlQueryModel(); 14 | queryitem=new QSqlQuery(conn.mydb); 15 | leritens(); 16 | modalitem->setHeaderData(1, Qt::Horizontal, tr("ID")); 17 | modalitem->setHeaderData(2, Qt::Horizontal, tr("Item")); 18 | modalitem->setHeaderData(3, Qt::Horizontal, tr("Descrição")); 19 | ui->tableView_itens->setModel(modalitem); 20 | ui->tableView_itens->setColumnHidden(0,true); 21 | ui->tableView_itens->resizeColumnsToContents(); 22 | filtraritem=""; 23 | 24 | modaltipo=new QSqlQueryModel(); 25 | querytipo=new QSqlQuery(conn.mydb); 26 | lertipo(); 27 | ui->comboBox_tipoitem->setModel(modaltipo); 28 | id_tipo=modaltipo->record(0).value(1).toInt(); 29 | 30 | modaltamanho=new QSqlQueryModel(); 31 | querytamanho=new QSqlQuery(conn.mydb); 32 | lertamanho(); 33 | ui->comboBox_tamanhoitem->setModel(modaltamanho); 34 | id_tamanho=modaltamanho->record(0).value(1).toInt(); 35 | 36 | querypreco=new QSqlQuery(conn.mydb); 37 | modelpreco2=new QSqlQueryModel(); 38 | lerprecos(); 39 | 40 | modelpreco2->setHeaderData(4, Qt::Horizontal, tr("ID")); 41 | modelpreco2->setHeaderData(5, Qt::Horizontal, tr("Item")); 42 | modelpreco2->setHeaderData(6, Qt::Horizontal, tr("Tipo")); 43 | modelpreco2->setHeaderData(7, Qt::Horizontal, tr("Tamanho")); 44 | modelpreco2->setHeaderData(8, Qt::Horizontal, tr("Preço")); 45 | 46 | ui->tableView_precos->setModel(modelpreco2); 47 | ui->tableView_precos->setItemDelegateForColumn(8, new NumberFormatDelegate(this)); 48 | ui->tableView_precos->setColumnHidden(0,true); 49 | ui->tableView_precos->setColumnHidden(1,true); 50 | ui->tableView_precos->setColumnHidden(2,true); 51 | ui->tableView_precos->setColumnHidden(3,true); 52 | ui->tableView_precos->resizeColumnsToContents(); 53 | filtrarpreco=""; 54 | 55 | } 56 | 57 | Preco::~Preco() 58 | { 59 | delete ui; 60 | 61 | conn.close(); 62 | } 63 | 64 | void Preco::on_pushButton_fechar_clicked() 65 | { 66 | close(); 67 | } 68 | 69 | void Preco::on_comboBox_tipoitem_activated(const QString &arg1) 70 | { 71 | 72 | qDebug() << "comboBox_tipoitem" << arg1; 73 | querytipo->first(); 74 | while(arg1!=querytipo->value(0).toString()) 75 | querytipo->next(); 76 | 77 | id_tipo=querytipo->value(1).toInt(); 78 | 79 | } 80 | 81 | void Preco::on_comboBox_tamanhoitem_activated(const QString &arg1) 82 | { 83 | querytamanho->first(); 84 | while(arg1!=querytamanho->value(0).toString()) 85 | querytamanho->next(); 86 | 87 | id_tamanho=querytamanho->value(1).toInt(); 88 | } 89 | 90 | 91 | void Preco::on_pushButton_inserir_clicked() 92 | { 93 | qDebug() << "inserir_clicked"; 94 | 95 | bool ok; 96 | int i; 97 | QString precoitem=ui->lineEdit_preco->text(); 98 | QString id=ui->lineEdit_id->text(); 99 | float fpreco=precoitem.toFloat(&ok); 100 | 101 | qDebug()<rowCount();i++) 107 | if(modelpreco2->record(i).value(1).toInt()==id_item && 108 | modelpreco2->record(i).value(2).toInt()==id_tipo && 109 | modelpreco2->record(i).value(3).toInt()==id_tamanho) 110 | ok=false; // preco ja inserido 111 | */ 112 | if(ok){ 113 | if(!id_preco) 114 | querypreco->prepare("insert into preco (id_item, id_tipo, id_tamanho, id, preco) values (:id_item,:id_tipo,:id_tamanho,:id, :preco)"); 115 | else{ 116 | querypreco->prepare("update preco set id_tipo=:id_tipo, id_tamanho=:id_tamanho, preco=:preco, id=:id where id_preco=:id_preco"); 117 | querypreco->bindValue(":id_preco",id_preco); 118 | } 119 | 120 | querypreco->bindValue(":id",id); 121 | querypreco->bindValue(":id_item",id_item); 122 | querypreco->bindValue(":id_tipo",id_tipo); 123 | querypreco->bindValue(":id_tamanho",id_tamanho); 124 | querypreco->bindValue(":preco",precoitem); 125 | 126 | if(querypreco->exec()){ 127 | if(!id_preco) 128 | QMessageBox::critical(this,tr("Inserir preço"),tr("Preço inserido com sucesso!")); 129 | else 130 | QMessageBox::critical(this,tr("Alterar preço"),tr("Preço alterado com sucesso!")); 131 | ui->lineEdit_preco->setText(""); 132 | ui->label_item->setText("[ Selecione um item ]"); 133 | 134 | //modelpreco->select(); 135 | lerprecos(); 136 | ui->tableView_precos->setModel(modelpreco2); 137 | id_preco=0; 138 | ui->tableView_precos->setItemDelegateForColumn(8, new NumberFormatDelegate(this)); 139 | ui->tableView_precos->setColumnHidden(0,true); 140 | ui->tableView_precos->setColumnHidden(1,true); 141 | ui->tableView_precos->setColumnHidden(2,true); 142 | ui->tableView_precos->setColumnHidden(3,true); 143 | ui->tableView_precos->resizeColumnsToContents(); 144 | 145 | ui->lineEdit_id->setText("");; 146 | ui->lineEdit_preco->setText(""); 147 | } 148 | else{ 149 | QMessageBox::critical(this,tr("Inserir Preço"),querypreco->lastError().text()); 150 | } 151 | qDebug() << "inserir preco "<< querypreco->lastError().text(); 152 | } 153 | } 154 | else{ 155 | if(!ok){ 156 | QMessageBox::critical(this,tr("Inserir Preço"),tr("Valor inválido")); 157 | } 158 | if(!id_item){ 159 | QMessageBox::critical(this,tr("Inserir Preço"),tr("Favor selecionar um item")); 160 | } 161 | } 162 | 163 | } 164 | 165 | void Preco::on_tableView_itens_activated(const QModelIndex &index) 166 | { 167 | 168 | QString celula=ui->tableView_itens->model()->data(index).toString(); 169 | int colunas=ui->tableView_itens->model()->columnCount(); 170 | int linha=index.row(); 171 | int coluna=index.column(); 172 | 173 | 174 | id_item=modalitem->record(linha).value(0).toInt(); 175 | qDebug() << celula << colunas << linha << coluna << id_item; 176 | 177 | ui->label_item->setText(queryitem->value(2).toString()); 178 | ui->lineEdit_id->setText(""); 179 | } 180 | 181 | void Preco::on_tableView_precos_activated(const QModelIndex &index) 182 | { 183 | QString celula=ui->tableView_precos->model()->data(index).toString(); 184 | int colunas=ui->tableView_precos->model()->columnCount(); 185 | int linha=index.row(); 186 | int coluna=index.column(); 187 | 188 | qDebug() << celula << colunas << linha << coluna; 189 | 190 | ui->lineEdit_id->setText(modelpreco2->record(linha).value(4).toString()); 191 | ui->label_item->setText(modelpreco2->record(linha).value(5).toString()); 192 | ui->lineEdit_preco->setText(modelpreco2->record(linha).value(8).toString()); 193 | 194 | int contador=0; 195 | 196 | qDebug()<comboBox_tipoitem->itemText(contador); 197 | while(modelpreco2->record(linha).value(6).toString()!=ui->comboBox_tipoitem->itemText(contador)) 198 | contador++; 199 | ui->comboBox_tipoitem->setCurrentIndex(contador); 200 | 201 | contador=0; 202 | while(modelpreco2->record(linha).value(7).toString()!=ui->comboBox_tamanhoitem->itemText(contador)) 203 | contador++; 204 | ui->comboBox_tamanhoitem->setCurrentIndex(contador); 205 | 206 | id_preco=modelpreco2->record(linha).value(0).toInt(); 207 | 208 | } 209 | 210 | void Preco::on_pushButton_apagar_clicked() 211 | { 212 | QModelIndexList indexList = ui->tableView_precos->selectionModel()->selectedIndexes(); 213 | int idpreco, row; 214 | QVariantList listprecos; 215 | 216 | if (QMessageBox::No == QMessageBox(QMessageBox::Information, "Apagar Item com Preço!", "Confirma?", QMessageBox::Yes|QMessageBox::No).exec()){ 217 | return; 218 | } 219 | 220 | foreach (QModelIndex index, indexList) { 221 | row = index.row(); 222 | qDebug() << row << index.column(); 223 | idpreco=modelpreco2->record(row).value(0).toInt(); 224 | listprecos << idpreco; 225 | } 226 | querypreco->prepare("DELETE FROM preco where id_preco=:id_preco"); 227 | querypreco->bindValue(":id_preco", listprecos); 228 | if(querypreco->execBatch()){ 229 | QMessageBox::critical(this,tr("Apagar"),tr("Preço apagado com sucesso!")); 230 | 231 | lerprecos(); 232 | 233 | ui->tableView_precos->setModel(modelpreco2); 234 | 235 | id_preco=0; 236 | ui->lineEdit_id->setText("");; 237 | ui->lineEdit_preco->setText(""); 238 | ui->comboBox_tipoitem->setCurrentIndex(0); 239 | ui->comboBox_tamanhoitem->setCurrentIndex(0); 240 | 241 | } 242 | else{ 243 | QMessageBox::critical(this,tr("error::"),queryitem->lastError().text()); 244 | } 245 | } 246 | 247 | void Preco::on_pushButton_filtraritens_clicked() 248 | { 249 | filtraritem=ui->lineEdit_filtraritens->text(); 250 | leritens(); 251 | ui->tableView_itens->setModel(modalitem); 252 | 253 | } 254 | 255 | void Preco::on_pushButton_filtrarpreco_clicked() 256 | { 257 | filtrarpreco=ui->lineEdit_filtrarpreco->text(); 258 | lerprecos(); 259 | ui->tableView_precos->setModel(modelpreco2); 260 | 261 | } 262 | -------------------------------------------------------------------------------- /endereco.cpp: -------------------------------------------------------------------------------- 1 | #include "endereco.h" 2 | #include "ui_endereco.h" 3 | #include 4 | 5 | Endereco::Endereco(QWidget *parent) : 6 | QDialog(parent), 7 | ui(new Ui::Endereco) 8 | { 9 | ui->setupUi(this); 10 | 11 | conn.connOpen(); 12 | 13 | modalestados=new QSqlQueryModel(); 14 | queryestados=new QSqlQuery(conn.mydb); 15 | 16 | queryestados->prepare("select ufe_no, ufe_sg from log_faixa_uf"); 17 | queryestados->exec(); 18 | modalestados->setQuery(*queryestados); 19 | ui->comboBox_estados->setModel(modalestados); 20 | 21 | cliente=new QSqlQuery(conn.mydb); 22 | endereco=new QSqlQuery(conn.mydb); 23 | 24 | modalcidades=new QSqlQueryModel(); 25 | querycidades=new QSqlQuery(conn.mydb); 26 | 27 | modalruas=new QSqlQueryModel(); 28 | queryruas=new QSqlQuery(conn.mydb); 29 | 30 | } 31 | 32 | Endereco::~Endereco() 33 | { 34 | delete ui; 35 | conn.close(); 36 | } 37 | 38 | void Endereco::on_pushButton_procurarcliente_clicked() 39 | { 40 | QString procura=ui->lineEdit_procurarcliente->text(); 41 | qDebug() << "on_pushButton_procurarcliente"; 42 | 43 | qDebug() << procura; 44 | 45 | QSqlQueryModel *modal=new QSqlQueryModel(); 46 | 47 | modal=new QSqlQueryModel(); 48 | 49 | cliente->prepare("SELECT id_cliente, cliente.nome, cliente.fone, cliente.celular \ 50 | FROM cliente \ 51 | WHERE (cliente.nome like :procura ) or\ 52 | (cliente.fone like :procura ) or\ 53 | (cliente.celular like :procura ) "); 54 | cliente->bindValue( ":procura", "%" + procura + "%" ); 55 | 56 | cliente->exec(); 57 | 58 | modal->setQuery(*cliente); 59 | ui->tableView_clientes->setModel(modal); 60 | ui->tableView_clientes->setColumnHidden(0,true); 61 | 62 | } 63 | 64 | void Endereco::on_comboBox_estados_activated(const QString &arg1) 65 | { 66 | 67 | lecidades(arg1); 68 | ui->comboBox_cidade->setModel(modalcidades); 69 | 70 | cidade=queryestados->value(0).toString(); 71 | estado=queryestados->value(1).toString(); 72 | loc_nu_sequencial=queryestados->value(2).toInt(); 73 | 74 | qDebug() << cidade; 75 | 76 | } 77 | 78 | void Endereco::on_pushButton_procurar_clicked() 79 | { 80 | QString rua=ui->lineEdit_procurarua->text(); 81 | qDebug() << "on_pushButton_procurar"; 82 | 83 | qDebug() << rua; 84 | qDebug() << estado; 85 | qDebug() << loc_nu_sequencial; 86 | 87 | leruas(rua); 88 | ui->tableView_enderecos->setModel(modalruas); 89 | 90 | } 91 | 92 | void Endereco::on_comboBox_cidade_activated(const QString &arg1) 93 | { 94 | QString filtro=""; 95 | 96 | qDebug() << "on_comboBoxcidade_activated"; 97 | 98 | cidade=arg1; 99 | qDebug() << cidade; 100 | qDebug() << estado; 101 | 102 | for(int i=0;irowCount();i++){ 103 | if(modalcidades->record(i).value(0).toString()==cidade){ 104 | loc_nu_sequencial=modalcidades->record(i).value(2).toInt(); 105 | break; 106 | } 107 | } 108 | 109 | leruas(filtro); 110 | ui->tableView_enderecos->setModel(modalruas); 111 | 112 | } 113 | 114 | void Endereco::on_tableView_enderecos_activated(const QModelIndex &index) 115 | { 116 | qDebug() << "tableView enderecos_activated"; 117 | 118 | QString celula=ui->tableView_enderecos->model()->data(index).toString(); 119 | int colunas=ui->tableView_enderecos->model()->columnCount(); 120 | int linha=index.row(); 121 | int coluna=index.column(); 122 | 123 | qDebug() << celula; 124 | qDebug() << colunas; 125 | qDebug() << linha; 126 | qDebug() << coluna; 127 | 128 | ui->lineEdit_rua->setText(modalruas->record(linha).value(0).toString()); 129 | ui->label_bairro->setText(modalruas->record(linha).value(1).toString()); 130 | ui->label_cep->setText(modalruas->record(linha).value(2).toString()); 131 | ui->label_cidade->setText(cidade); 132 | ui->label_estado->setText(estado); 133 | 134 | bai_nu=modalruas->record(linha).value(3).toInt(); 135 | log_nu=modalruas->record(linha).value(4).toInt(); 136 | } 137 | 138 | void Endereco::on_pushButton_cancelar_clicked() 139 | { 140 | conn.connClose(); 141 | close(); 142 | } 143 | 144 | void Endereco::on_pushButton_gravar_clicked() 145 | { 146 | 147 | QString tipo_log, rua, numero, apto, bairro, cidade, cep, ufe; 148 | QSqlQuery *novo_end=new QSqlQuery(conn.mydb); 149 | 150 | rua=ui->lineEdit_rua->text(); 151 | cep=ui->label_cep->text(); 152 | bairro=ui->label_bairro->text(); 153 | cidade=ui->label_cidade->text(); 154 | numero=ui->lineEdit_numero->text(); 155 | apto=ui->lineEdit_numapto->text(); 156 | ufe=ui->label_estado->text(); 157 | 158 | qDebug()<prepare("insert into endereco (rua, numero, apto, bairro, cep, cidade, estado, id_cliente, bai_nu_sequencial, log_nu_sequencial)" 163 | "values (:nomerua, :numero, :apto, :bairro, :cep, :cidade, :estado, :id_cliente, :bai_nu, :log_nu) "); 164 | 165 | qDebug()<<"insert"; 166 | } 167 | else{ 168 | novo_end->prepare("update endereco set rua=:nomerua, numero=:numero, apto=:apto, bairro=:bairro, \ 169 | cep=:cep, cidade=:cidade, estado=:estado, bai_nu_sequencial=:bai_nu, log_nu_sequencial=:log_nu \ 170 | where id_cliente=:id_cliente "); 171 | 172 | } 173 | novo_end->bindValue(":id_cliente",id_cliente); 174 | novo_end->bindValue(":nomerua",rua); 175 | novo_end->bindValue(":numero",numero); 176 | novo_end->bindValue(":apto",apto); 177 | novo_end->bindValue(":bairro",bairro); 178 | novo_end->bindValue(":cep",cep); 179 | novo_end->bindValue(":cidade",cidade); 180 | novo_end->bindValue(":estado",ufe); 181 | novo_end->bindValue(":bai_nu",bai_nu); 182 | novo_end->bindValue(":log_nu",log_nu); 183 | 184 | if(novo_end->exec()){ 185 | QMessageBox::critical(this,tr("Editar"),tr("Dados alterados com sucesso!")); 186 | conn.connClose(); 187 | close(); 188 | } 189 | else{ 190 | QMessageBox::critical(this,tr("error::"),novo_end->lastError().text()); 191 | } 192 | 193 | } 194 | else{ 195 | if(!id_cliente) 196 | QMessageBox::critical(this,tr("Gravar Endereço"),tr("Favor selecionar cliente")); 197 | if(numero=="") 198 | QMessageBox::critical(this,tr("Gravar Endereço"),tr("Favor digitar número do endereço")); 199 | } 200 | } 201 | 202 | void Endereco::on_tableView_clientes_activated(const QModelIndex &index) 203 | { 204 | qDebug() << "tableView_clientes"; 205 | 206 | QString celula=ui->tableView_clientes->model()->data(index).toString(); 207 | int colunas=ui->tableView_clientes->model()->columnCount(); 208 | int linha=index.row(); 209 | int coluna=index.column(); 210 | 211 | qDebug() << celula; 212 | qDebug() << colunas; 213 | qDebug() << linha; 214 | qDebug() << coluna; 215 | 216 | cliente->first();//primeiro registro da query 217 | int contador=0; 218 | while(contadornext(); 220 | contador++; 221 | } 222 | 223 | ui->label_nomecliente->setText(cliente->value(1).toString()); 224 | id_cliente=cliente->value(0).toInt(); 225 | 226 | endereco->prepare("select * from endereco WHERE id_cliente=:id_cliente"); 227 | endereco->bindValue(":id_cliente",id_cliente); 228 | endereco->exec(); 229 | 230 | QSqlQueryModel *modal_end=new QSqlQueryModel(); 231 | modal_end->setQuery(*endereco); 232 | ui->tableView_endcadast->setModel(modal_end); 233 | 234 | } 235 | 236 | void Endereco::on_tableView_endcadast_activated(const QModelIndex &index) 237 | { 238 | QString celula=ui->tableView_endcadast->model()->data(index).toString(); 239 | int colunas=ui->tableView_endcadast->model()->columnCount(); 240 | int linha=index.row(); 241 | int coluna=index.column(); 242 | 243 | qDebug() << celula; 244 | qDebug() << colunas; 245 | qDebug() << linha; 246 | qDebug() << coluna; 247 | 248 | endereco->first();//primeiro registro da query 249 | int contador=0; 250 | while(contadornext(); 252 | contador++; 253 | } 254 | ui->lineEdit_rua->setText(endereco->value(2).toString()); 255 | ui->lineEdit_numero->setText(endereco->value(3).toString()); 256 | ui->lineEdit_numapto->setText(endereco->value(4).toString()); 257 | // ui->lineEdit_bairro->setText(endereco->value(5).toString()); 258 | // ui->lineEdit_cep->setText(endereco->value(6).toString()); 259 | ui->label_cidade->setText(endereco->value(7).toString()); 260 | ui->label_estado->setText(endereco->value(8).toString()); 261 | // ui->lineEdit_tipolog->setText(endereco->value(9).toString()); 262 | 263 | id_endereco=endereco->value(0).toInt(); 264 | 265 | } 266 | 267 | void Endereco::on_pushButton_apagar_clicked() 268 | { 269 | endereco->prepare("DELETE FROM endereco where id_endereco=:id_endereco"); 270 | endereco->bindValue(":id_endereco", id_endereco); 271 | if(id_endereco){ 272 | if (QMessageBox::Yes == QMessageBox(QMessageBox::Information, "Apagar Endereço!", "Confirma?", QMessageBox::Yes|QMessageBox::No).exec()) 273 | { 274 | if(endereco->exec()){ 275 | QMessageBox::critical(this,tr("Apagar"),tr("Endereço apagado com sucesso!")); 276 | conn.connClose(); 277 | close(); 278 | } 279 | else{ 280 | QMessageBox::critical(this,tr("error::"),endereco->lastError().text()); 281 | } 282 | } 283 | } 284 | else{ 285 | if(!id_endereco) 286 | QMessageBox::critical(this,tr("Apagar Endereço"),tr("Favor selecionar endereço!")); 287 | } 288 | 289 | } 290 | 291 | void Endereco::on_pushButton_novocliente_clicked() 292 | { 293 | Cliente NovoCliente; 294 | 295 | NovoCliente.setModal(true); 296 | NovoCliente.exec(); 297 | } 298 | --------------------------------------------------------------------------------