Ejemplo n.º 1
0
    def agregarMantenimiento(self):

        c = Creator()
        filejson = c.makeConfigJSON()
        nombreVehiculo = filejson["nameVehicule"]
        idVehiculo = Vehiculo.getIdvehiculo(Vehiculo, nombreVehiculo)

        if self.ids.precioMantenimiento.text=="" or self.ids.kilometrosMantenimiento.text=="" or self.ids.descripcionMantenimiento.text=="":
            self.ids.datosIncompletosMantenimiento.text="Ingrese todos los datos"
        elif Tacometro.validarTacometro2(Tacometro,int(self.ids.kilometrosMantenimiento.text), idVehiculo):
            self.ids.datosIncompletosMantenimiento.text="Esos kilometros ya fueron registrados debe ser superior"
        else:

            km = self.ids.kilometrosMantenimiento.text
            descripcion = self.ids.descripcionMantenimiento.text
            precio = self.ids.precioMantenimiento.text
            Mantenimiento.makeMantenimiento(Mantenimiento,idVehiculo,descripcion, km, precio)

            self.ids.datosIncompletosMantenimiento.text=""
            box=BoxLayout(orientation="horizontal")
            box.add_widget(Label(text=str(time.strftime("%d/%m/%Y"))))
            box.add_widget(Label(text=self.ids.precioMantenimiento.text))
            box.add_widget(Label(text=self.ids.kilometrosMantenimiento.text))
            box.add_widget(Label(text=self.ids.descripcionMantenimiento.text))
            box.add_widget(Label(text=nombreVehiculo))
            self.ids.contenedorMantenimientos.add_widget(box)
Ejemplo n.º 2
0
 def changeWindows(self, app):
     c = Creator()
     json = c.makeConfigJSON()
     print("PASO DE VENTANA_____VEHICULO:", self.parent.children[2].text)
     json["nameVehicule"] = self.parent.children[2].text
     c.writeConfigJson(json)
     app.root.current = "tableroPrincipal"
     print(app.root.screens[1].name)
     for i in app.root.screens:
         if i.name == "tableroPrincipal":
             i.confCorreo()
Ejemplo n.º 3
0
    def on_guardar(self, *args):

        #armar el vehiculo para guardarlo a la base de datos

        nombreVehiculo = self.ids.nombreVehiculo.text
        valorTacometro = self.ids.valorTacometro.text
        tipoCombustible = self.ids.spinner_0.text
        tipoVehiculo = self.ids.spinner_1.text
        marcaVehiculo = self.ids.spinner_2.text
        modeloVehiculo = self.ids.spinner_3.text
        if nombreVehiculo == "" or valorTacometro == "" or tipoCombustible == "Combustible" or tipoVehiculo == "Tipo vehiculo" or marcaVehiculo == "marca" or modeloVehiculo == "modelo":
            self.ids.advertenciaAgregarVehiculo.text = "Complete todos los campos."
            return [False, None]
        else:

            print(
                "Valores cargados validando existencia para escribir la base de datos"
            )
            self.combustible = Combustible.GetCombustible(
                Combustible, self.ids.spinner_0.text)
            self.lineaSelect = LineaVehiculo.selectLinea(
                LineaVehiculo, self.ids.spinner_3.text, self.lineas)
            self.nombre = self.ids.nombreVehiculo.text
            self.kilometraje = self.ids.valorTacometro.text

            print("vehiculo a agregar")
            print("tipo:", self.tipoSelect)
            print("marca", self.marcaSelect)
            print("linea:", self.lineaSelect)
            print("combustible", self.combustible)
            print("Valor tacometro:", self.kilometraje)
            print("Nombre vehiculo:", self.nombre)

            if Vehiculo.existeVehiculo(Vehiculo, self.nombre):
                #no lo puedo agregar a la base de datos
                self.ids.advertenciaAgregarVehiculo.text = "ya existe ese vehiculo."
                return [False, None]

            else:
                #como no existe lo agrego a la base de datos
                veh = Vehiculo.addVehiculo(Vehiculo, self.nombre,
                                           self.lineaSelect.id,
                                           self.combustible.id)
                print("TIPO DEL KILOMETRAJE", type(self.kilometraje))
                Tacometro.addTacometro(Tacometro, veh.id,
                                       int(self.kilometraje))

                #aqui agrego la latitud y longitud a la table de geolocaclizacion
                geopos = Creator.ConseguirPOS(Creator)
                UbicacionVehiculo.makeUV(UbicacionVehiculo, veh.id,
                                         geopos['latitude'],
                                         geopos['longitude'])

                return [True, nombreVehiculo, veh]
Ejemplo n.º 4
0
    def _on_answer(
            self, instance,
            answer):  #al oprimir el boton si o no se activa esta funcion
        self.popup.dismiss()
        if answer == 'si':

            #write the mail in the config.json
            mail = str(self.ids.correo.text)
            creator = Creator()

            config = creator.makeConfigJSON()

            config["mail"] = mail
            config["mailvalidate"] = True

            creator.writeConfigJson(config)

            self.manager.current = "segunda"  #Cambio de ventana aqui porque depende de lo que seleccione en el popup si, no.
        elif answer == 'no':
            pass
Ejemplo n.º 5
0
	def alarmaActivada(self, ventanaActual, nombreAlarma, recargaOmantenimiento): #para lanzar una alarma que se haya programado.
		#mixer.init()
		#mixer.music.load('helio.mp3')
		#mixer.music.play()
		c = Creator()
		filejson = c.makeConfigJSON()
		nombreVehiculo = filejson["nameVehicule"]
		contenedorBtn = GridLayout(cols=3, size_hint_y= None, height='44sp')
		contenedorGeneral=GridLayout(cols=1)
		informacionAlarma = Label(text="Usted ha programado la alarma: "+nombreAlarma+" para "+recargaOmantenimiento+" del vehiculo: " + nombreVehiculo)
		btnAceptar = Button(text="OK", on_press=lambda alarm:self.regresaraPestanaAnterior(ventanaActual))

		contenedorBtn.add_widget(BoxLayout())
		contenedorBtn.add_widget(btnAceptar)
		contenedorBtn.add_widget(BoxLayout())

		contenedorGeneral.add_widget(informacionAlarma)
		contenedorGeneral.add_widget(contenedorBtn)

		self.popup = Popup(title="ALARMA",content=contenedorGeneral,size_hint=(1, 1), auto_dismiss= False)
		self.popup.open()
Ejemplo n.º 6
0
    def agregarRecarga(self):

        #obtener el nombre del vehiculo
        c = Creator()
        filejson = c.makeConfigJSON()
        nombreVehiculo = filejson["nameVehicule"]
        idVehiculo = Vehiculo.getIdvehiculo(Vehiculo, nombreVehiculo)

        if self.ids.precioRecarga.text=="" or self.ids.kilometrosRecarga.text=="":
            self.ids.datosIncompletosRecarga.text="Ingrese todos los datos"
        elif Tacometro.validarTacometro(Tacometro,int(self.ids.kilometrosRecarga.text), idVehiculo):
            self.ids.datosIncompletosRecarga.text="Esos kilometros ya fueron registrados debe ser superior"
        else:
            self.ids.datosIncompletosRecarga.text=""

            Recarga.makeRecarga(Recarga, nombreVehiculo,self.ids.precioRecarga.text, self.ids.kilometrosRecarga.text)

            box=BoxLayout(orientation="horizontal")
            box.add_widget(Label(text=str(time.strftime("%d/%m/%Y"))))
            box.add_widget(Label(text=self.ids.precioRecarga.text))
            box.add_widget(Label(text=self.ids.kilometrosRecarga.text))
            box.add_widget(Label(text=nombreVehiculo))
            self.ids.contenedorRecargas.add_widget(box)
Ejemplo n.º 7
0
    def ubicacionVehiculo(self):

        #integracion base de datos
        nombre = self.parent.children[2].text
        print ("ubicar vehiculo", nombre)#bd
        print("id vehiculo: ", Vehiculo.getIdvehiculo(Vehiculo, nombre))

        idv = Vehiculo.getIdvehiculo(Vehiculo, nombre)
        geo_data = Creator.ConseguirPOS(Creator)
        UbicacionVehiculo.actualizarUbicacion(UbicacionVehiculo,idv, geo_data['latitude'], geo_data['longitude'] )
        #Agregar ubicacion DB
        #print(self.parent.children[2].text) #Para obtener el nombre del vehiculo.
        #print(geo_data['latitude'], geo_data['longitude'])

        self.popup = Popup(title="ESTADO",content=Label(text="Ubicacion guardada correctamente"),size_hint=(0.7, 0.2))
        self.popup.open()
Ejemplo n.º 8
0
from db.creator import Creator
#from negocio.combustible import Combustible

#how to make the database

x = Creator()
x.addVehiculesPrueba()
"""
x.makeDB()
x.makeAllTables()
x.loadTipoMarcaLineaVehiculo()
x.loadCombustible()
"""

#rom negocio.tipovehiculo import TipoVehiculo

#t = TipoVehiculo
Ejemplo n.º 9
0
    def build(self):

        #process to make the database or not, and take the mail or not
        creator = Creator()

        config = creator.makeConfigJSON()

        #print("La configuracion\n",config)
        if not config["init"]:

            #make the database

            creator.makeDB()
            creator.makeAllTables()
            creator.loadTipoMarcaLineaVehiculo()
            creator.loadCombustible()

            print(
                "____________________________Creacion completa___________________________________"
            )
            config["init"] = True

            creator.writeConfigJson(config)
            k = Builder.load_file("vistas.kv")

        if not config["mailvalidate"]:
            #request the mail
            k = Builder.load_file("vistas.kv")
        else:
            k = Builder.load_file("vistas2.kv")

        return k
Ejemplo n.º 10
0
    def enviarReporte(self):

        c = Creator()
        filejson = c.makeConfigJSON()
        nombreVehiculo = filejson["nameVehicule"]
        idVehiculo = Vehiculo.getIdvehiculo(Vehiculo, nombreVehiculo)


        #self.ids.correopantalla.text = filejson["mail"]
        import csv
        import smtplib
        import mimetypes

        # Importamos los módulos necesarios
        from email.mime.multipart import MIMEMultipart
        from email.mime.text import MIMEText
        from email.encoders import encode_base64

        fechai = 0
        fechaf = -1
        validarFecha = True
        try:
            fechai = datetime.strptime(self.ids.fechaInicial.text, "%d/%m/%Y").date()
            fechaf = datetime.strptime(self.ids.fechaFinal.text, "%d/%m/%Y").date()
        except:
            validarFecha=False #si la fecha esta mal
            print("entramos a la excepcion")

        if fechai > fechaf:
            self.ids.advertenciaResporte.text="fechas invalidas"
        elif validarFecha:
            self.ids.advertenciaResporte.text=""
            mto = Mantenimiento.getAllMtos(Mantenimiento, fechai, fechaf,idVehiculo)
            rec = Recarga.getAllRecargas(Recarga, fechai, fechaf, idVehiculo)
            f=open("reporteVehiculo.csv", "w")
            f.close()
            with open('reporteVehiculo.csv', 'w') as csvfile:
                spamwriter = csv.writer(csvfile, delimiter=' ',
                                        quotechar='|', quoting=csv.QUOTE_MINIMAL)
                spamwriter.writerow(['Recargas del Vehiculo'])
                spamwriter.writerow(['Fecha', 'Precio', 'Kilometros recorridos'])
                for i in range(len(rec)):
                    #spamwriter.writerow(['Fecha'+str(i)]+ ['Precio'+str(i)]+ ['Kilometros recorridos'+str(i)])
                    spamwriter.writerow( [[rec[i][2] ] + [   str(rec[i][1]) ]  + [  str(Tacometro.getValorTacByID(Tacometro,rec[i][3])) ]])
                spamwriter.writerow(['Mantenimientos del Vehiculo'])
                spamwriter.writerow(['Fecha', 'Precio', 'Kilometros recorridos', 'Descripcion'])
                for i in range(len(mto)):
                    #spamwriter.writerow(['Fecha'+str(i)]+ ['Precio'+str(i)]+ ['Kilometros recorridos'+str(i)])
                    spamwriter.writerow([ [  mto[i][3] ] + [str(mto[i][1]) ] + [str(Tacometro.getValorTacByID(Tacometro,mto[i][4] )) ] + [mto[i][2] ]])


            # Creamos objeto Multipart, quien será el recipiente que enviaremos
            msg = MIMEMultipart()
            msg['From']="*****@*****.**"
            msg['To'] = self.ids.correopantalla.text
            msg['Subject']="Reporte del vehiculo: " +  nombreVehiculo

            # Adjuntamos Imagen
            file = open("reporteVehiculo.csv", "r")
            attach_image = MIMEText(file.read())
            attach_image.add_header('Content-Disposition', 'attachment; filename = "reporteVehiculo.csv"')
            msg.attach(attach_image)

            # Autenticamos
            mailServer = smtplib.SMTP('smtp.gmail.com',587)
            mailServer.ehlo()
            mailServer.starttls()
            mailServer.ehlo()
            mailServer.login("*****@*****.**","laboratoriodesw20191")

            # Enviamos
            mailServer.sendmail("*****@*****.**", self.ids.correopantalla.text, msg.as_string())

            # Cerramos conexión
            mailServer.close()
Ejemplo n.º 11
0
    def crearReporte(self):
        validarFecha=True
        fechai = 0
        fechaf = -1
        c = Creator()
        filejson = c.makeConfigJSON()
        nombreVehiculo = filejson["nameVehicule"]
        idVehiculo = Vehiculo.getIdvehiculo(Vehiculo, nombreVehiculo)
        try:
            fechai = datetime.strptime(self.ids.fechaInicial.text, "%d/%m/%Y").date()
            fechaf = datetime.strptime(self.ids.fechaFinal.text, "%d/%m/%Y").date()
        except:
            validarFecha=False #si la fecha esta mal
            print("entramos a la excepcion")
        if self.ids.tipoReporte.text=="Tipo de reporte" or self.ids.fechaInicial.text=="" or self.ids.fechaFinal.text=="":
            self.ids.advertenciaResporte.text="Complete todos los datos"
        elif fechai > fechaf:
            self.ids.advertenciaResporte.text="fechas invalidas"
        elif validarFecha:
            self.ids.advertenciaResporte.text=""
            print("Creando reporte")
            if self.ids.tipoReporte.text=="Reporte de recargas":
                self.ids.elegirListaReporte.clear_widgets() #Se elimina toda la lista del reporte elegido anteriormente
                nombreColumnas=BoxLayout(size_hint_y=0.1) #Box con los nombres de cada columna
                scrollReportes=ScrollView()
                gridReportes=GridLayout(cols=1, size_hint_y=None, row_default_height=self.height*0.1) #Va a contener todas las filas del repo
                gridReportes.bind(minimum_height=gridReportes.setter('height')) #es para que el scroll se pueda mover.
                columna= Label(text="Fecha Recarga", color=(1,1,0,1))
                nombreColumnas.add_widget(columna)
                columna= Label(text="Precio Recarga", color=(1,0,1,1))
                nombreColumnas.add_widget(columna)
                columna= Label(text="Kilometros Recorridos", color=(0,0,1,1))
                nombreColumnas.add_widget(columna)#;Recarga.getAllRecargas(Recarga, fechai, fechaf)
                rec = Recarga.getAllRecargas(Recarga, fechai, fechaf, idVehiculo)

                for i in range(len(rec)):
                    gridReportes.add_widget(BoxLayout(orientation="horizontal"))
                for i, n in enumerate(gridReportes.children):
                    print("")
                    n.add_widget(Label(text=  rec[i][2]))
                    n.add_widget(Label(text=  str(rec[i][1])))
                    n.add_widget(Label(text=  str(Tacometro.getValorTacByID(Tacometro,rec[i][3]))))
            elif self.ids.tipoReporte.text=="Reporte de mantenimiento":
                self.ids.elegirListaReporte.clear_widgets()
                nombreColumnas=BoxLayout(size_hint_y=0.1)
                scrollReportes=ScrollView()
                gridReportes=GridLayout(cols=1, size_hint_y=None, row_default_height=self.height*0.1)
                gridReportes.bind(minimum_height=gridReportes.setter('height')) #es para que el scroll se pueda mover.
                columna= Label(text="Fecha Mantenimiento", color=(1,1,0,1))
                nombreColumnas.add_widget(columna)
                columna= Label(text="Precio Mantenimiento", color=(1,0,1,1))
                nombreColumnas.add_widget(columna)
                columna= Label(text="Kilometros Recorridos", color=(0,0,1,1))
                nombreColumnas.add_widget(columna)

                mto = Mantenimiento.getAllMtos(Mantenimiento, fechai, fechaf,idVehiculo)
                for i in range(len(mto)):
                    gridReportes.add_widget(BoxLayout(orientation="horizontal"))
                for i, n in enumerate(gridReportes.children):
                    n.add_widget(Label(text= mto[i][3] ))
                    n.add_widget(Label(text= str(mto[i][1]) ))
                    n.add_widget(Label(text= str(Tacometro.getValorTacByID(Tacometro,mto[i][4] ))))
	        #Creo la lista de reportes para la huella de carbono----------->DB
            elif self.ids.tipoReporte.text=="Reportes de huella de carbono":
                self.ids.elegirListaReporte.clear_widgets()
                nombreColumnas=BoxLayout(size_hint_y=0.1)
                scrollReportes=ScrollView()
                gridReportes=GridLayout(cols=1, size_hint_y=None, row_default_height=self.height*0.1)
                gridReportes.bind(minimum_height=gridReportes.setter('height')) #es para que el scroll se pueda mover.
                columna= Label(text="Fecha Recarga Comb", color=(1,1,0,1))
                nombreColumnas.add_widget(columna)
                columna= Label(text="Cantidad combustible", color=(1,0,1,1))
                nombreColumnas.add_widget(columna)
                columna= Label(text="Huella Carbono (gr)", color=(0,0,1,1))
                nombreColumnas.add_widget(columna)
                for i in range(10):
                    gridReportes.add_widget(BoxLayout(orientation="horizontal"))
                for i, n in enumerate(gridReportes.children):
                    n.add_widget(Label(text=str(time.strftime("%d/%m/%Y"))))
                    n.add_widget(Label(text="cantidad"+str(i)))
                    n.add_widget(Label(text="huella"+str(i)))

            self.ids.elegirListaReporte.add_widget(nombreColumnas)
            scrollReportes.add_widget(gridReportes)
            self.ids.elegirListaReporte.add_widget(scrollReportes)

        else:
        	self.ids.advertenciaResporte.text="No ha ingresado una fecha correcta..."
        	validarFecha=True
Ejemplo n.º 12
0
    def confCorreo(self):

        c = Creator()
        filejson = c.makeConfigJSON()
        self.ids.correopantalla.text = filejson["mail"]