コード例 #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()