示例#1
0
 def FactsLiteLoad(self, widget, data=None):
     self.CursorFactLiteSlected = True
     model, iter = self.TreeFactsLite.get_selection().get_selected()
     ID = model.get_value(iter, 0)
     Res1 = BD_Conect.LoadOnService(ID)
     for i in Res1:
         DatosFactura = (i[0], i[1], i[2])
     self.ServiceSelected = DatosFactura[0]
     if self.ServiceSelected > 0 and self.ServiceSelected <= 4:
         Com = " - 6 Comensales"
     elif self.ServiceSelected > 4 and self.ServiceSelected <= 5:
         Com = " - 8 Comensales"
     elif self.ServiceSelected > 5:
         Com = " - 10 Comensales"
     self.EB_S_Selected.set_text("Mesa: " + str(self.ServiceSelected) + Com)
     self.EB_S_Camarero.set_text(DatosFactura[1])
     self.EB_S_Cliente.set_text(DatosFactura[2])
     Total = 0
     self.ListSFM.clear()
     Res = BD_Conect.LoadLF(ID)
     for i in Res:
         file = (str(i[0]), str(i[1]), str(i[2]))
         Total = Total + i[1] * i[2]
         BD_Conect.AltaLista(self.TreeSFM, self.ListSFM, file)
     self.EB_S_CosteTotal.set_text(str(Total) + "€")
示例#2
0
 def LoadS(self):
     self.CursorServicesSelected = False
     self.ListServicios.clear()
     Res = BD_Conect.Load(2)
     for i in Res:
         fila = (i[1], str(i[2]), i[0])
         BD_Conect.AltaLista(self.TreeServicios, self.ListServicios, fila)
示例#3
0
 def LoadClientes(self):
     ### Limpiamos la lista actual del treeview
     self.ListClientes.clear()
     ResCli = BD_Conect.Load(1)
     for i in ResCli:
         fila = (i[0], i[1], i[2])
         BD_Conect.AltaLista(self.TreeClientes, self.ListClientes, fila)
示例#4
0
 def FilterByDNI(self, widget, data=None):
     self.ListF_Factura.clear()
     model, iter = self.TreeF_Cliente.get_selection().get_selected()
     ID = model.get_value(iter, 0)
     Res = BD_Conect.LoadFactFilterDNI(ID)
     for i in Res:
         file = (i[0], i[1], i[2], i[3], i[4])
         BD_Conect.AltaLista(self.TreeF_Factura, self.ListF_Factura, file)
示例#5
0
 def SFactsReload(self, widget, data=None):
     self.ListFactsLite.clear()
     model, iter = self.TreeSM.get_selection().get_selected()
     ID = model.get_value(iter, 0)
     Res = BD_Conect.LoadFactLite(ID)
     for i in Res:
         file = (i[0], i[1], i[4])
         BD_Conect.AltaLista(self.TreeFactsLite, self.ListFactsLite, file)
示例#6
0
 def KeySearch(self, widget, event):
     """Búsqueda rápida por apellido
     
     Mientras se escriba en la EntryBox del apartado de clientes cada vez que se teclee se realizará una búsqueda de los clientes mediante su apellido
     """
     ResCli = BD_Conect.SearchCli(self.EB_SearchC.get_text())
     self.ListClientes.clear()
     for i in ResCli:
         fila = (i[0], i[1], i[2])
         BD_Conect.AltaLista(self.TreeClientes, self.ListClientes, fila)
示例#7
0
 def ConfYES(self, widget, data=None):
     if self.ID_Confirm == 1:
         Model, ID = self.TreeClientes.get_selection().get_selected()
         ResC = BD_Conect.DelClient(self.ListClientes.get_value(ID, 0))
         self.LoadClientes()
     elif self.ID_Confirm == 2:
         model, iter = self.TreeServicios.get_selection().get_selected()
         ID = model.get_value(iter, 2)
         BD_Conect.EraseService(ID)
     self.ID_Confirm = 0
     self.VT_Conf.hide()
示例#8
0
    def Facturas(self, widget, data=None):
        self.LoadMesas()
        self.ListF_Cliente.clear()
        Res = BD_Conect.Load(1)
        for i in Res:
            fila = (i[0], i[1], i[2], i[3], i[4], i[5])
            BD_Conect.AltaLista(self.TreeF_Cliente, self.ListF_Cliente, fila)
        self.ListF_Factura.clear()
        Res = BD_Conect.Load(4)
        for i in Res:
            fila = (i[0], i[1], i[2], i[3], i[4])
            BD_Conect.AltaLista(self.TreeF_Factura, self.ListF_Factura, fila)

        self.NB_Principal.set_current_page(2)
示例#9
0
    def DelService(self, widget, data=None):
        model, iter = self.TreeFactsLite.get_selection().get_selected()
        IDF = model.get_value(iter, 0)

        model, iter = self.TreeSFM.get_selection().get_selected()
        IDS = model.get_value(iter, 0)

        BD_Conect.DelLF(IDF, IDS)
        self.ListSFM.clear()
        Res = BD_Conect.LoadLF(IDF)
        Total = 0
        for i in Res:
            file = (str(i[0]), str(i[1]), str(i[2]))
            Total = Total + i[1] * i[2]
            BD_Conect.AltaLista(self.TreeSFM, self.ListSFM, file)
        self.EB_S_CosteTotal.set_text(str(Total) + "€")
示例#10
0
 def Servicios(self, widget, data=None):
     self.LoadS()
     self.LoadMesas()
     self.ServiceSelected = 0
     Res = BD_Conect.Load(3)
     self.ListFactsLite.clear()
     for i in Res:
         file = (i[0], i[1], i[4])
         BD_Conect.AltaLista(self.TreeFactsLite, self.ListFactsLite, file)
     self.EB_S_Selected.set_text("")
     self.EB_S_Camarero.set_text("")
     self.EB_S_Cliente.set_text("")
     self.EB_S_CosteTotal.set_text("")
     self.CursorServicesSelected = False
     self.CursorFactLiteSlected = False
     self.NB_Principal.set_current_page(1)
示例#11
0
 def AñadirCliente(self, widget, data=None):
     fila = (self.EB_C_DNI.get_text(), self.EB_C_Apellidos.get_text(),
             self.EB_C_Nombre.get_text(), self.EB_C_Direccion.get_text(),
             self.ListPro.get_value(self.CB_C_Provincia.get_active_iter(),
                                    0),
             self.ListCiu.get_value(self.CB_C_Ciudad.get_active_iter(), 0))
     BD_Conect.Insert(fila, 0)
     self.LoadClientes()
     self.NB_Clientes.set_current_page(0)
示例#12
0
 def Disocupped(self, widget, data=None):
     model, iter = self.TreeMesas.get_selection().get_selected()
     if iter != None:
         ID = model.get_value(iter,
                              0)  # Cogemos la ID de la mesa de la tabla
         BD_Conect.Disocupped(
             ID
         )  #Se cambia el estado de la columna "Ocupada" de la base de datos para la mesa seleccionada
     self.LoadMesas()
示例#13
0
    def crearfactura(self, widget, data=None):
        try:
            model, iter = self.TreeF_Factura.get_selection().get_selected()
            idfactura = model.get_value(iter, 0)

            model, iter = self.TreeF_Factura.get_selection().get_selected()
            dnicliente = model.get_value(iter, 1)

            cser = canvas.Canvas(str(idfactura) + '.pdf', pagesize=A4)

            self.cabecera(cser, idfactura, dnicliente)
            self.pie(cser)
            listado = BD_Conect.LoadToFactura(idfactura)

            textlistado = 'Cod       Concepto                              Unidades                        Precio/unidad                                  Total'
            cser.drawString(50, 705, textlistado)
            cser.line(50, 700, 545, 700)
            x = 50
            y = 680
            total = 0
            for registro in listado:
                for i in range(4):
                    if i <= 1:
                        cser.drawString(x, y, str(registro[i]))
                        x = x + 40
                    else:
                        x = x + 120
                        cser.drawString(x, y, str(registro[i]))

                    var1 = int(registro[2])
                    var2 = registro[3]
                    var2 = var2
                    var2 = round(float(var2), 2)
                    subtotal = var1 * var2
                total = total + subtotal
                subtotal = locale.currency(subtotal)
                x = x + 120
                cser.drawRightString(545, y, str(subtotal))
                y = y - 20
                x = 50
            y = y - 20
            cser.line(50, y, 545, y)
            y = y - 20
            x = 400
            cser.drawString(x, y, 'Total: ')
            x = 485
            total = round(float(total), 2)
            total = locale.currency(total)
            cser.drawString(x, y, str(total))
            cser.showPage()
            cser.save()
            dir = os.getcwd()
            os.system('/usr/bin/xdg-open ' + dir + '/' + str(idfactura) +
                      '.pdf')
        except:
            print('error en factura')
示例#14
0
 def Login(self, widget, data=None):
     Log = (self.ET_User.get_text(), self.ET_Pass.get_text())
     Res = BD_Conect.LogCompr(Log)
     for Row in Res:
         self.LB_Check.set_text(
             " Logeado como: \n " + Row[1]
         )  # Establece el label que indica el nombre del camarero logeado
         self.CamID = Row[
             0]  # Guarda su ID para futuros usos sin necesidad de hacer mas busquedas
         if Row[0] != None:
             self.LS.hide()
     self.LB_LE.set_text("Usuario o contraseña incorrectos")
示例#15
0
    def BuyService(self, widget, data=None):
        if self.CursorFactLiteSlected == True:
            if self.CursorServicesSelected == True:
                model, iter = self.TreeFactsLite.get_selection().get_selected()
                IDF = model.get_value(iter, 0)

                model, iter = self.TreeServicios.get_selection().get_selected()
                IDS = model.get_value(iter, 2)

                BD_Conect.InsertSF(IDF, IDS)
                self.ListSFM.clear()
                Res = BD_Conect.LoadLF(IDF)
                Total = 0
                for i in Res:
                    file = (str(i[0]), str(i[1]), str(i[2]))
                    Total = Total + i[1] * i[2]
                    BD_Conect.AltaLista(self.TreeSFM, self.ListSFM, file)
                self.EB_S_CosteTotal.set_text(str(Total) + "€")
            else:
                a = 1
        else:
            placeholder = 1
示例#16
0
    def Occupped(self, widget, data=None):
        """Ocupación de mesas
        
        Este método se encarga del estado de las mesas cuando se oprime el botón de 'Ocupar'
        """
        if self.Selected == 0:  # Si la variable de seleccion está a 0 es que no se ha presionado ningún botón de mesa.
            self.LB_MS.set_text("Debe seleccionar una mesa primero")
        elif self.Selected == -1:  # Si está a -1 es que se ha seleccionado una mesa ocupada del tree view
            self.LB_MS.set_text("Esa mesa ya estaba ocupada")
        elif self.Selected > 0:
            if self.CursorSelected == False:
                self.LB_MS.set_text("Tiene que seleccionar un cliente primero")
            else:
                Model, ID = self.TreeClientes.get_selection().get_selected()
                Año, Mes, Dia = self.CA_Fecha.get_date()
                Fecha = str(Año) + "-" + str(Mes) + "-" + str(Dia)
                fila = (self.Selected, self.ListClientes.get_value(ID, 0),
                        self.CamID, Fecha)
                BD_Conect.Ocupped(fila)

        self.LoadMesas()
示例#17
0
    def cabecera(self, cser, idfactura, dnicliente):
        try:
            cser.setTitle('Informes')
            cser.setAuthor('Daniel Bastos Rodriguez')
            cser.setFont('Helvetica', 11)

            cser.line(50, 820, 545, 820)
            cser.line(50, 720, 545, 720)
            cser.line(50, 700, 545, 700)
            textnom = 'Restaurante Il Sicario'
            textdir = 'Calle False 125- Springfield'
            texttlfo = '666 66 66 66'
            cser.drawCentredString(297.5, 795, textnom)
            cser.drawCentredString(297.5, 775, textdir)
            cser.drawCentredString(297.5, 755, texttlfo)

            camarero = BD_Conect.LoadToCabecera(idfactura)
            cser.drawString(450, 745, "Le atendió: " + camarero[0][0])
            cser.drawString(450, 730, "Cliente: " + dnicliente)
        except:
            print('erros cabecera')
示例#18
0
 def salir(self, widget, data=None):
     BD_Conect.Disconect()
     Gtk.main_quit()
示例#19
0
 def FCliSearch(self, widget, data=None):
     ResCli = BD_Conect.SearchCli(self.EB_F_ClientSearcher.get_text())
     self.ListF_Cliente.clear()
     for i in ResCli:
         fila = (i[0], i[1], i[2], i[3], i[4], i[5])
         BD_Conect.AltaLista(self.TreeF_Cliente, self.ListF_Cliente, fila)
示例#20
0
 def ServiceSearch(self, widget, data=None):
     self.ListServicios.clear()
     Res = BD_Conect.SearchService(self.EB_S_Searcher.get_text())
     for i in Res:
         fila = (i[1], str(i[2]), i[0])
         BD_Conect.AltaLista(self.TreeServicios, self.ListServicios, fila)
示例#21
0
 def LoadMesas(self):
     ### Limpiamos la lista actual del treeview
     self.ListMesas.clear()
     ### Obtenemos una lista de todas las mesas y su estado.
     Res = BD_Conect.Load(0)
     ### Para cada mesa comprobamos si está ocupada, en ese caso el botón cambio de imagen y se bloquea
     ### Si no está ocupada el botón se desbloquea y la imágen vuelve a la de disponible
     for i in Res:
         fila = (i[0], i[1], i[2])
         if fila[0] == 1:
             if fila[2] == 'Si':
                 self.IMG_Mesa1.set_from_file("../IMG/Mesa4_NO.jpg")
                 self.BT_Mesa1.set_sensitive(False)
             else:
                 self.IMG_Mesa1.set_from_file("../IMG/Mesa4_SI.jpg")
                 self.BT_Mesa1.set_sensitive(True)
         elif fila[0] == 2:
             if fila[2] == 'Si':
                 self.IMG_Mesa2.set_from_file("../IMG/Mesa4_NO.jpg")
                 self.BT_Mesa2.set_sensitive(False)
             else:
                 self.IMG_Mesa2.set_from_file("../IMG/Mesa4_SI.jpg")
                 self.BT_Mesa2.set_sensitive(True)
         elif fila[0] == 3:
             if fila[2] == 'Si':
                 self.IMG_Mesa3.set_from_file("../IMG/Mesa4_NO.jpg")
                 self.BT_Mesa3.set_sensitive(False)
             else:
                 self.IMG_Mesa3.set_from_file("../IMG/Mesa4_SI.jpg")
                 self.BT_Mesa3.set_sensitive(True)
         elif fila[0] == 4:
             if fila[2] == 'Si':
                 self.IMG_Mesa4.set_from_file("../IMG/Mesa4_NO.jpg")
                 self.BT_Mesa4.set_sensitive(False)
             else:
                 self.IMG_Mesa4.set_from_file("../IMG/Mesa4_SI.jpg")
                 self.BT_Mesa4.set_sensitive(True)
         elif fila[0] == 5:
             if fila[2] == 'Si':
                 self.IMG_Mesa5.set_from_file("../IMG/Mesa6_NO.jpg")
                 self.BT_Mesa5.set_sensitive(False)
             else:
                 self.IMG_Mesa5.set_from_file("../IMG/Mesa6_SI.jpg")
                 self.BT_Mesa5.set_sensitive(True)
         elif fila[0] == 6:
             if fila[2] == 'Si':
                 self.IMG_Mesa6.set_from_file("../IMG/Mesa6_NO.jpg")
                 self.BT_Mesa6.set_sensitive(False)
             else:
                 self.IMG_Mesa6.set_from_file("../IMG/Mesa6_SI.jpg")
                 self.BT_Mesa6.set_sensitive(True)
         elif fila[0] == 7:
             if fila[2] == 'Si':
                 self.IMG_Mesa7.set_from_file("../IMG/Mesa8_NO.jpg")
                 self.BT_Mesa7.set_sensitive(False)
             else:
                 self.IMG_Mesa7.set_from_file("../IMG/Mesa8_SI.jpg")
                 self.BT_Mesa7.set_sensitive(True)
         elif fila[0] == 8:
             if fila[2] == 'Si':
                 self.IMG_Mesa8.set_from_file("../IMG/Mesa8_NO.jpg")
                 self.BT_Mesa8.set_sensitive(False)
             else:
                 self.IMG_Mesa8.set_from_file("../IMG/Mesa8_SI.jpg")
                 self.BT_Mesa8.set_sensitive(True)
     ### Obtenemos una lista sólo de las mesas ocupadas para poner en el tree view
     ResOcuped = BD_Conect.LoadOccuped()
     for i in ResOcuped:
         fila = (i[0], i[1], i[2])
         BD_Conect.AltaLista(self.TreeMesas, self.ListMesas, fila)
示例#22
0
 def AddNewService(self, widget, data=None):
     fila = (self.EB_NSN.get_text(), self.EB_NSP.get_text())
     BD_Conect.Insert(fila, 1)
     self.LoadS()
     self.VService.hide()