def barrasVendedor(self,idVendedor):
     archNCV = abrir('NCV')
     archCliente = abrir('Cliente')
     
     self.groupBox_7.setEnabled(True)
     total = 0
     pago = 0
     impago = 0
     for i in range (len(archNCV)):
         reg = leer(archNCV,i)
         if (reg.idVendedor==idVendedor):
             total +=reg.importe
             if (reg.pagado):
                 pago+=reg.importe
             else:
                 impago+=reg.importe
     self.vendedorTotalPrecio.setText('TOTAL $ '+str(total))
     self.vendedorPagoPrecio.setText('PAGO $ '+str(pago))
     self.vendedorImpagoPrecio.setText('IMPAGO $ '+str(impago))
     
     self.vTotalBar.setValue(100)
     self.vPagoBar.setValue(101*pago/total)
     self.vImpagoBar.setValue(101*impago/total)
     
     cerrar(archNCV)
     cerrar(archCliente)
 def inicializacion(self):
     archNCV = abrir('NCV')
     archCliente = abrir('Cliente')
     
     total = 0
     pago = 0
     impago = 0
     for i in range (len(archNCV)):
         reg = leer(archNCV,i)
         total +=reg.importe
         if (reg.pagado):
             pago+=reg.importe
         else:
             impago+=reg.importe
     self.empresaTotalPrecio.setText('TOTAL $ '+str(total))
     self.empresaPagoPrecio.setText('PAGO $ '+str(pago))
     self.empresaImpagoPrecio.setText('IMPAGO $ '+str(impago))
     
     self.eTotalBar.setValue(100)
     self.ePagoBar.setValue(101*pago/total)
     self.eImpagoBar.setValue(101*impago/total)
     
     for j in range (len(archCliente)):
         reg = leer(archCliente,j)
         self.clienteCombo.addItem(str(reg.idCliente)+' '+reg.nomCliente)
     
     cerrar(archNCV)
     cerrar(archCliente)
    def altaBajaModif(self):
        #print('entro')   
        #print(self.tabla.currentRow())
        #print(self.tabla.item(self.tabla.currentRow(), 2).text())
        idSeleccionado = self.tabla.item(self.tabla.currentRow(), 2).text()
        j = self.tabla.currentRow()
        self.tabla.clearSelection()
        for i in range (0,7):
            self.tabla.item(j,i).setBackground(QColor("cyan"))
        idCliente=abrir('id')
        guardarid(idCliente,int(idSeleccionado))
               
        dial = AltaBajaModif()       
        dial.setAttribute(QtCore.Qt.WA_DeleteOnClose)
        dial.setModal(True)   
        dial.exec_()
        
        self.generarArboles()
        #print(leer(archNCV,len(archNCV)-1).ncv)
        self.clienteCombo.clear()
        
        archCliente = abrir('Cliente')

        for j in range (len(archCliente)):
            reg = leer(archCliente,j)
            self.clienteCombo.addItem(str(reg.idCliente)+' '+reg.nomCliente)
        
        cerrar(archCliente)
        
        self.inicializacion()
        self.generarReporte()
 def generarArboles(self):   
             
     archNCV = abrir('NCV')
     archCliente = abrir('Cliente')
     
     self.arbolNCV = None
     self.arbolNCV = cargarArbolNCV(archNCV)
     self.arbolCliente = None
     self.arbolCliente = cargarArbolCliente(archCliente)
     
     cerrar(archNCV)
     cerrar(archCliente)
 def creararchivoclima(self):
     reg = clima()
     f = open('datos_clima.csv')
     a = abrir('clima')
     #print(f.readline())
     linea = f.readline()
     cont = -1
     while (linea):
         cont += 1
         lista = linea.split(',')
         #print(lista)
         reg.id = (lista[0])
         reg.date = (lista[1])
         reg.time = (lista[2])
         reg.temp = (lista[3])
         reg.presion = (lista[4])
         reg.viento = (lista[5])
         reg.humedad = (lista[6])
         reg.estado = (lista[7])
         reg.zona = (lista[8])
         reg.activo = True
         agregar(a, reg)
         linea = f.readline()
     print("listo")
     f.close()
     cerrar(a)
def creararchivoclima():
    f = open('datos_clima.csv')
    a = abrir('clima')
    print(f.readline())
    linea = f.readline()
    cont = -1
    while (linea):
        cont += 1
        lista = linea.split(',')
        reg = clima()
        reg.id = (lista[0])
        reg.date = (lista[1])
        reg.time = (lista[2])
        reg.temp = (lista[3])
        reg.presion = (lista[4])
        reg.viento = (lista[5])
        reg.humedad = (lista[6])
        reg.estado = (lista[7])
        reg.zona = (lista[8])
        for campo in lista:
            print(campo)
        agregar(a, reg)
        linea = f.readline()
    print(cont)
    f.close()
    cerrar(a)
 def buscar_id(self):
     print("aca")
     arbol = self.aux1[1]
     busc = self.buscador.text()
     a = abrir('clima')
     self.tabla.setRowCount(0)
     busqueda(arbol, busc, self.tabla, a)
     cerrar(a)
 def cargararboles(self):  #no funca
     self.azona, self.acodigo, self.afecha = None, None, None
     a = abrir('clima')
     pos = 0
     #reg = clima()
     while (pos < len(a)):
         self.reg = leer(a, pos)
         self.azona = insertar(self.azona, self.reg.zona, pos)
         self.acodigo = insertar(self.acodigo, self.reg.id, pos)
         self.afecha = insertar(self.afecha, self.reg.date, pos)
         pos += 1
     cerrar(a)
     return [self.azona, self.acodigo, self.afecha]
 def modificardato(self):  #ver si funciona
     arbolfecha = self.aux1[2]
     arbolzona = self.aux1[0]
     arbolid = self.aux1[1]
     lid = self.altaid.text()
     lfecha = self.altafecha.text()
     lhora = self.altahora.text()
     ltemp = self.altatemperatura.text()
     lpresion = self.altapresion.text()
     lviento = self.altaviento.text()
     lhumedad = self.altahumedad.text()
     lestado = self.altaestado.text()
     lzona = self.altazona.text()
     a = abrir('clima')
     #reg = clima()
     #pos = 0
     #control = True
     #while(pos<len(a) and control):
     if (lid != ''):
         pos = buscar(arbolid, lid)
         if (pos != None):
             reg = leer(a, pos)
             if (reg.activo == True):
                 if (lfecha != ''):
                     arbolfecha = eliminar(arbolfecha, reg.date, pos)
                     reg.date = lfecha
                     arbolfecha = insertar(
                         arbolfecha[0], lfecha,
                         pos)  #esta fallando en esta insercion
                 if (lhora != ''):
                     reg.time = (lhora)
                 if (ltemp != ''):
                     reg.temp = (ltemp)
                 if (lpresion != ''):
                     reg.presion = (lpresion)
                 if (lviento != ''):
                     reg.viento = (lviento)
                 if (lhumedad != ''):
                     reg.humedad = (lhumedad)
                 if (lestado != ''):
                     reg.estado = (lestado)
                 if (lzona != ''):
                     arbolzona = eliminar(arbolzona, reg.zona, pos)
                     reg.zona = lzona
                     arbolzona = insertar(arbolzona[0], lzona, pos)
                 modificar(a, reg, pos)  #ver como modificar el arbol
     cerrar(a)
     self.mostrarlista()
 def insertardato(self):
     arbolid = self.aux1[1]
     arbolfecha = self.aux1[2]
     arbolzona = self.aux1[0]
     lid = self.altaid.text()
     lfecha = self.altafecha.text()
     lhora = self.altahora.text()
     ltemp = self.altatemperatura.text()
     lpresion = self.altapresion.text()
     lviento = self.altaviento.text()
     lhumedad = self.altahumedad.text()
     lestado = self.altaestado.text()
     lzona = self.altazona.text()
     a = abrir('clima')
     reg = clima()
     pos = 0
     control = False
     while (pos < len(a)):
         reg = leer(a, pos)
         if (reg.id == lid):
             if (reg.activo != True):
                 reg.activo = True
                 modificar(a, reg, pos)
                 arbolzona = insertar(arbolzona, lzona, pos)
                 arbolid = insertar(arbolid, lid, pos)
                 arbolfecha = insertar(arbolfecha, lfecha, pos)
                 control = True
             else:
                 control = True  #es para ver si existe y esta dado de alta
         pos = pos + 1
     if (control != True):
         reg.id = (lid)
         arbolid = insertar(arbolid, lid, pos)
         reg.date = (lfecha)
         arbolfecha = insertar(arbolfecha, lfecha, pos)
         reg.time = (lhora)
         reg.temp = (ltemp)
         reg.presion = (lpresion)
         reg.viento = (lviento)
         reg.humedad = (lhumedad)
         reg.estado = (lestado)
         reg.zona = (lzona)
         arbolzona = insertar(arbolzona, lzona, pos)
         reg.activo = True
         agregar(a, reg)
     cerrar(a)
     self.mostrarlista()
 def generarReporte(self):        
     self.inicializarBarras()
     self.tabla.setColumnCount(0)  
     self.tabla.setColumnCount(7)        
     self.tabla.setHorizontalHeaderLabels(['NCV', 'Vendedor', 'IDCliente', 'Nombre', 'Activo', 'Importe','Pagado'])
     
     self.tabla.setColumnWidth(0, 70);   
     self.tabla.setColumnWidth(3, 150);
     
     #self.tabla.setSortingEnabled(False)
     
     self.tabla.setRowCount(0)
     lista = []
     
     archNCV = abrir('NCV')
     
     if self.inordenRadio.isChecked():       
         lista = self.inordenNCV(self.arbolNCV, lista, archNCV)           
     else: 
         lista = self.postordenNCV(self.arbolNCV, lista, archNCV)
     
     cerrar(archNCV)
     
     seleccionados=self.listaSeleccionados()
     #print(seleccionados)
             
     for i in range(len(lista)):
         fila=self.tabla.rowCount()
         #self.tabla.insertRow(fila)
         
         if (seleccionados[0]=='saldoTotal'):
             self.cargarFila(seleccionados,fila,lista,i)
             
         elif (seleccionados[0]=='saldoPago'):
             if (lista[i].pagado):
                 self.cargarFila(seleccionados,fila,lista,i) 
                 
         else: #saldoImpago
             if (lista[i].pagado==False):
                 self.cargarFila(seleccionados,fila,lista,i)
 def eliminardato(self):
     arbolid = self.aux1[1]
     arbolfecha = self.aux1[2]
     arbolzona = self.aux1[0]
     lid = self.altaid.text()
     a = abrir('clima')
     #reg = clima()
     pos = 0
     control = True
     while (pos < len(a) and control):
         reg = leer(a, pos)
         if (reg.id == lid):
             if (reg.activo == True):
                 reg.activo = False
                 modificar(a, reg, pos)
                 arbolzona = eliminar(arbolzona, reg.zona, pos)
                 arbolid = eliminar(arbolid, reg.id, pos)
                 arbolfecha = eliminar(arbolfecha, reg.date, pos)
                 control = False
         pos = pos + 1
     cerrar(a)
     self.mostrarlista()
 def barrasCliente(self,idCliente):
     archNCV = abrir('NCV')
     
     self.groupBox_10.setEnabled(True)
     total = 0
     pago = 0
     impago = 0
     for i in range (len(archNCV)):
         reg = leer(archNCV,i)
         if (reg.idCliente==idCliente):
             total +=reg.importe
             if (reg.pagado):
                 pago+=reg.importe
             else:
                 impago+=reg.importe
     self.clienteTotalPrecio.setText('TOTAL $ '+str(total))
     self.clientePagoPrecio.setText('PAGO $ '+str(pago))
     self.clienteImpagoPrecio.setText('IMPAGO $ '+str(impago))
     
     self.cTotalBar.setValue(100)
     self.cPagoBar.setValue(101*pago/total)
     self.cImpagoBar.setValue(101*impago/total)
     
     cerrar(archNCV)
# -*- coding: utf-8 -*-
"""
Created on Tue May  1 01:38:10 2018

@author: Mona Thinkpad
"""

from PyQt4 import QtCore, QtGui, uic
from archivos import abrir, leer, modificar, regNCV, guardar
from arbolinConAVL import cargarArbolNCV, cargarArbolCliente

menu = uic.loadUiType("interfaz/altaBajaModificacion.ui")[0]
archivoId = abrir('id')
archCliente = abrir('Cliente')
archNCV = abrir('NCV')


class AltaBajaModif(QtGui.QDialog, menu):
    def __init__(self, parent=None):
        QtGui.QDialog.__init__(self, parent)
        self.setupUi(self)
        self.setWindowTitle("Alta-Baja-Modificación")
        self.setWindowIcon(QtGui.QIcon('bar-chart.png'))

        self.nuevoNombre.setEnabled(False)

        self.cerrar.clicked.connect(self.hide)
        self.idBuscar = leer(archivoId, 0)
        self.pos = None
        self.registro = None
        self.inicializar()
 def mostrarlista(self):
     self.tabla.setRowCount(0)
     arbol = self.aux1[1]
     a = abrir('clima')
     inordena(arbol, self.tabla, a)
     cerrar(a)
 def cargarFila(self,seleccionados,fila,lista,i):
     archCliente = abrir('Cliente')
     
     if (seleccionados[1]=='vendedorTodos'):
         if (seleccionados[2]=='clienteTodos'):
             self.tabla.insertRow(fila)
             
             self.tabla.setItem(fila, 0, QTableWidgetItem(str(lista[i].ncv)))
             self.tabla.setItem(fila, 1, QTableWidgetItem(str(lista[i].idVendedor)))
             self.tabla.setItem(fila, 2, QTableWidgetItem(str(lista[i].idCliente)))
             self.tabla.setItem(fila, 5, QTableWidgetItem(str(lista[i].importe)))
             if (lista[i].pagado):
                 self.tabla.setItem(fila, 6, QTableWidgetItem('PAGADO'))
                 self.tabla.item(fila,6).setBackground(QColor("lightgreen"))
             else:
                 self.tabla.setItem(fila, 6, QTableWidgetItem('IMPAGO'))
                 self.tabla.item(fila,6).setBackground(QColor("red"))
             pos = busquedaCliente(self.arbolCliente,lista[i].idCliente)
             reg = leer(archCliente,pos)
             self.tabla.setItem(fila, 3, QTableWidgetItem(reg.nomCliente))
             if (reg.activo):
                 self.tabla.setItem(fila, 4, QTableWidgetItem('ACTIVO'))
                 self.tabla.item(fila,4).setBackground(QColor("lightgreen"))
             else:
                 self.tabla.setItem(fila, 4, QTableWidgetItem('BAJA'))
                 self.tabla.item(fila,4).setBackground(QColor("red")) 
         else:
             if (lista[i].idCliente==int(seleccionados[2])):
                 self.barrasCliente(lista[i].idCliente)
                 self.tabla.insertRow(fila)
             
                 self.tabla.setItem(fila, 0, QTableWidgetItem(str(lista[i].ncv)))
                 self.tabla.setItem(fila, 1, QTableWidgetItem(str(lista[i].idVendedor)))
                 self.tabla.setItem(fila, 2, QTableWidgetItem(str(lista[i].idCliente)))
                 self.tabla.setItem(fila, 5, QTableWidgetItem(str(lista[i].importe)))
                 if (lista[i].pagado):
                     self.tabla.setItem(fila, 6, QTableWidgetItem('PAGADO'))
                     self.tabla.item(fila,6).setBackground(QColor("lightgreen"))
                 else:
                     self.tabla.setItem(fila, 6, QTableWidgetItem('IMPAGO'))
                     self.tabla.item(fila,6).setBackground(QColor("red"))
                 pos = busquedaCliente(self.arbolCliente,lista[i].idCliente)
                 reg = leer(archCliente,pos)
                 self.tabla.setItem(fila, 3, QTableWidgetItem(reg.nomCliente))
                 if (reg.activo):
                     self.tabla.setItem(fila, 4, QTableWidgetItem('ACTIVO'))
                     self.tabla.item(fila,4).setBackground(QColor("lightgreen"))
                 else:
                     self.tabla.setItem(fila, 4, QTableWidgetItem('BAJA'))
                     self.tabla.item(fila,4).setBackground(QColor("red"))
             
     elif (lista[i].idVendedor==int(seleccionados[1])):
         self.barrasVendedor(lista[i].idVendedor)
         if (seleccionados[2]=='clienteTodos'):
             self.tabla.insertRow(fila)
             
             self.tabla.setItem(fila, 0, QTableWidgetItem(str(lista[i].ncv)))
             self.tabla.setItem(fila, 1, QTableWidgetItem(str(lista[i].idVendedor)))
             self.tabla.setItem(fila, 2, QTableWidgetItem(str(lista[i].idCliente)))
             self.tabla.setItem(fila, 5, QTableWidgetItem(str(lista[i].importe)))
             if (lista[i].pagado):
                 self.tabla.setItem(fila, 6, QTableWidgetItem('PAGADO'))
                 self.tabla.item(fila,6).setBackground(QColor("lightgreen"))
             else:
                 self.tabla.setItem(fila, 6, QTableWidgetItem('IMPAGO'))
                 self.tabla.item(fila,6).setBackground(QColor("red"))
             pos = busquedaCliente(self.arbolCliente,lista[i].idCliente)
             reg = leer(archCliente,pos)
             self.tabla.setItem(fila, 3, QTableWidgetItem(reg.nomCliente))
             if (reg.activo):
                 self.tabla.setItem(fila, 4, QTableWidgetItem('ACTIVO'))
                 self.tabla.item(fila,4).setBackground(QColor("lightgreen"))
             else:
                 self.tabla.setItem(fila, 4, QTableWidgetItem('BAJA'))
                 self.tabla.item(fila,4).setBackground(QColor("red"))
         else:
             if (lista[i].idCliente==int(seleccionados[2])):
                 self.barrasCliente(lista[i].idCliente)
                 self.tabla.insertRow(fila)
             
                 self.tabla.setItem(fila, 0, QTableWidgetItem(str(lista[i].ncv)))
                 self.tabla.setItem(fila, 1, QTableWidgetItem(str(lista[i].idVendedor)))
                 self.tabla.setItem(fila, 2, QTableWidgetItem(str(lista[i].idCliente)))
                 self.tabla.setItem(fila, 5, QTableWidgetItem(str(lista[i].importe)))
                 if (lista[i].pagado):
                     self.tabla.setItem(fila, 6, QTableWidgetItem('PAGADO'))
                     self.tabla.item(fila,6).setBackground(QColor("lightgreen"))
                 else:
                     self.tabla.setItem(fila, 6, QTableWidgetItem('IMPAGO'))
                     self.tabla.item(fila,6).setBackground(QColor("red"))
                 pos = busquedaCliente(self.arbolCliente,lista[i].idCliente)
                 reg = leer(archCliente,pos)
                 self.tabla.setItem(fila, 3, QTableWidgetItem(reg.nomCliente))
                 if (reg.activo):
                     self.tabla.setItem(fila, 4, QTableWidgetItem('ACTIVO'))
                     self.tabla.item(fila,4).setBackground(QColor("lightgreen"))
                 else:
                     self.tabla.setItem(fila, 4, QTableWidgetItem('BAJA'))
                     self.tabla.item(fila,4).setBackground(QColor("red"))
     cerrar(archCliente)                
 def ordenar_zona(self):
     self.tabla.setRowCount(0)
     arbol = self.aux1[0]
     a = abrir('clima')
     inordena(arbol, self.tabla, a)
     cerrar(a)