def __init__(self, tipo, datos): super(AgregarDocumentoModal, self).__init__() self.setWindowFlags(QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint) self.ui=Ui_Dialog_nuevoDocumento() self.ui.setupUi(self) # Tipo de documento self.tipo = tipo titulo = "" if(tipo==0): titulo = "Nuevo Documento Compra" self.ui.cuentaProveedoresClienteLabel.setText("Cuenta Proveedor") elif(tipo==1): titulo = "Nuevo Documento Venta" self.ui.cuentaProveedoresClienteLabel.setText("Cuenta Cliente") self.setWindowTitle(titulo) #Fecha actual rx = QtCore.QRegExp("[0-9]*") qr = QtGui.QRegExpValidator(rx) self.ui.sucursalLineEdit.setValidator( qr ) self.ui.cuentaProveedoresClienteLineEdit.setValidator( qr ) self.ui.contracuentaLineEdit.setValidator( qr ) self.ui.correlativoLineEdit.setValidator( qr) self.datos = datos self.llenarDatos() self.resultado = False self.exec_()
class AgregarDocumentoModal(QtGui.QDialog): def __init__(self, tipo, datos): super(AgregarDocumentoModal, self).__init__() self.setWindowFlags(QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint) self.ui=Ui_Dialog_nuevoDocumento() self.ui.setupUi(self) # Tipo de documento self.tipo = tipo titulo = "" if(tipo==0): titulo = "Nuevo Documento Compra" self.ui.cuentaProveedoresClienteLabel.setText("Cuenta Proveedor") elif(tipo==1): titulo = "Nuevo Documento Venta" self.ui.cuentaProveedoresClienteLabel.setText("Cuenta Cliente") self.setWindowTitle(titulo) #Fecha actual rx = QtCore.QRegExp("[0-9]*") qr = QtGui.QRegExpValidator(rx) self.ui.sucursalLineEdit.setValidator( qr ) self.ui.cuentaProveedoresClienteLineEdit.setValidator( qr ) self.ui.contracuentaLineEdit.setValidator( qr ) self.ui.correlativoLineEdit.setValidator( qr) self.datos = datos self.llenarDatos() self.resultado = False self.exec_() def accept(self): # Datos # Limitar a numeros o alfanumerico self.datos["Numero Documento"] = unicode(self.ui.labelNDocumento.text()) self.datos["RS Emisor"] = unicode(self.ui.labelEmisor.text()) self.datos["RS Receptor"] = unicode(self.ui.labelReceptor.text()) self.datos["Fecha"] = unicode(self.ui.fechaDateEdit.text()) self.datos["Sucursal"] =unicode( self.ui.sucursalLineEdit.text()) self.datos["Glosa"] = unicode(self.ui.glosaLineEdit.text()) self.datos["Monto Exento"] = unicode(self.ui.montoExcentoSpinBox.value()) self.datos["Cuenta"] = unicode(self.ui.cuentaProveedoresClienteLineEdit.text()) self.datos["Contracuenta"] = unicode(self.ui.contracuentaLineEdit.text()) self.datos["Correlativo"] = unicode(self.ui.correlativoLineEdit.text()) if(self.ui.activoFijoCheckBox.checkState () == QtCore.Qt.Checked): self.datos["Activo Fijo"] = 1 else: self.datos["Activo Fijo"] = 0 # Si uno de los datos esta vacio # TODO: Cambiar color al encontrar error fallas = [] for key, value in self.datos.items(): if(not ("%s"%value)): fallas.append(key) error = "" for i in fallas: error = error+"%s\n"%i if(len(fallas)!=0): QtGui.QMessageBox.about(self, "Datos incompletos", "Faltan datos a ingresar en los siguientes campos:\n%s"%error) else: # Guardando DBController.guardarFactura(self.datos, self.tipo) self.resultado = True self.close() def llenarDatos(self): self.ui.montoExcentoSpinBox.setMaximum(2**53) if(self.tipo == 0): self.ui.cuentaProveedoresClienteLineEdit.setText("21070100") elif(self.tipo == 1): self.ui.cuentaProveedoresClienteLineEdit.setText("11040100") self.llenarUltima() self.ui.montoTotalLabel.setText("$ %s"%self.datos["Monto Total"]) self.ui.labelNDocumento.setText(self.datos["Numero Documento"]) self.ui.labelEmisor.setText(self.datos["RS Emisor"]) self.ui.labelReceptor.setText(self.datos["RS Receptor"]) if(self.datos["Fecha"] == None): self.ui.fechaDateEdit.setDateTime(QtCore.QDateTime.currentDateTime()) self.ui.fechaDateEdit.setReadOnly(False) self.ui.fechaDateEdit.setFocus() qm = QtGui.QMessageBox(self) qm.setWindowTitle('Advertencia') qm.setText('''La fecha no pudo ser encontrada, debe ingresar \nla fecha correcta en el campo correspondiente''') qm.addButton(QtGui.QMessageBox.Yes).setText("Aceptar") qm.setIcon(QtGui.QMessageBox.Warning) reply = qm.exec_() else: self.ui.fechaDateEdit.setDate(QtCore.QDate.fromString(self.datos["Fecha"], "yyyy-MM-dd")) self.ui.contracuentaLineEdit.setFocus() if(self.datos["Tipo Documento"] == "34"): self.ui.montoExcentoSpinBox.setValue(float(self.datos["Monto Total"])) self.ui.montoExcentoSpinBox.setReadOnly(True) self.ui.activoFijoCheckBox.setCheckState(QtCore.Qt.Unchecked) if(self.datos["Activo Fijo"]): self.ui.activoFijoCheckBox.setCheckState(QtCore.Qt.Checked) self.ui.montoExcentoSpinBox.setMaximum(int(self.datos["Monto Total"])) def llenarUltima(self): fact = DBController.ultimaFactura(self.datos["Rut Emisor"]) if(fact): self.datos["Sucursal"] = unicode(fact.sucursal) self.datos["Cuenta"] = unicode(fact.cuentaProveedores) self.datos["Glosa"] = unicode(fact.Glosa) self.datos["Contracuenta"] = unicode(fact.contracuenta) self.datos["Activo Fijo"] = fact.activoFijo self.datos["RS Emisor"] = fact.empresaEmisor.rS self.datos["RS Receptor"] = fact.empresaReceptor.rS self.ui.sucursalLineEdit.setText(self.datos["Sucursal"]) self.ui.glosaLineEdit.setText(self.datos["Glosa"]) self.ui.contracuentaLineEdit.setText(self.datos["Contracuenta"]) self.ui.cuentaProveedoresClienteLineEdit.setText(self.datos["Cuenta"])