class Factura(QHBoxLayout): numero = '' titulo = '' tamanio = 12 enabled = True def __init__(self, parent=None, *args, **kwargs): QHBoxLayout.__init__(self) if 'titulo' in kwargs: self.titulo = kwargs['titulo'] if 'tamanio' in kwargs: self.tamanio = kwargs['tamanio'] if 'enabled' in kwargs: self.enabled = kwargs['enabled'] self.setupUi(parent) def setupUi(self, layout): if self.titulo: self.labelTitulo = Etiqueta(layout, texto=self.titulo, tamanio=self.tamanio) self.labelTitulo.setObjectName("labelTitulo") self.addWidget(self.labelTitulo) self.lineEditPtoVta = EntradaTexto(layout, placeholderText="Pto Vta", tamanio=self.tamanio) self.lineEditPtoVta.setObjectName("lineEditPtoVta") self.lineEditPtoVta.setEnabled(self.enabled) self.addWidget(self.lineEditPtoVta) self.lineEditNumero = EntradaTexto(layout, placeholderText="Numero", tamanio=self.tamanio) self.lineEditNumero.setObjectName("lineEditNumero") self.lineEditNumero.setEnabled(self.enabled) self.addWidget(self.lineEditNumero) self.lineEditPtoVta.proximoWidget = self.lineEditNumero self.lineEditNumero.largo = 8 self.lineEditPtoVta.largo = 4 self.lineEditPtoVta.setMaximumWidth(40) self.lineEditNumero.setMaximumWidth(70) self.lineEditPtoVta.editingFinished.connect(self.AssignNumero) self.lineEditNumero.editingFinished.connect(self.AssignNumero) def AssignNumero(self): if self.lineEditNumero.text(): self.lineEditNumero.setText( str(self.lineEditNumero.text()).zfill(8)) if self.lineEditPtoVta.text(): self.lineEditPtoVta.setText( str(self.lineEditPtoVta.text()).zfill(4)) self.numero = str(self.lineEditPtoVta.text()).zfill(4) + \ str(self.lineEditNumero.text()).zfill(8)
def ArmaEntrada(self, nombre="", boxlayout=None, texto='', *args, **kwargs): if not boxlayout: boxlayout = QHBoxLayout() lAgrega = True else: lAgrega = False if not texto: texto = nombre.capitalize() labelNombre = Etiqueta(texto=texto) labelNombre.setObjectName("labelNombre") boxlayout.addWidget(labelNombre) if 'control' in kwargs: lineEditNombre = kwargs['control'] else: lineEditNombre = EntradaTexto() if 'relleno' in kwargs: lineEditNombre.relleno = kwargs['relleno'] lineEditNombre.setObjectName(nombre) boxlayout.addWidget(lineEditNombre) if 'enabled' in kwargs: lineEditNombre.setEnabled(kwargs['enabled']) self.controles[nombre] = lineEditNombre if lAgrega: self.verticalLayoutDatos.addLayout(boxlayout) return boxlayout
def ArmaEntrada(self, nombre="", boxlayout=None, texto='', *args, **kwargs): if not nombre: return if not boxlayout: boxlayout = QHBoxLayout() lAgrega = True else: lAgrega = False if not texto: if isinstance(nombre, str): texto = nombre.capitalize() else: texto = nombre.verbose_name if nombre.verbose_name else nombre.name.capitalize( ) if not isinstance( nombre, str ): #si no es un campo texto intento convertir de un campo de pewee nombre = nombre.name labelNombre = Etiqueta(texto=texto) labelNombre.setObjectName("labelNombre") boxlayout.addWidget(labelNombre) if 'control' in kwargs: lineEditNombre = kwargs['control'] else: lineEditNombre = EntradaTexto() if 'relleno' in kwargs: lineEditNombre.relleno = kwargs['relleno'] if 'inputmask' in kwargs: lineEditNombre.setInputMask(kwargs['inputmask']) #print(type(lineEditNombre)) lineEditNombre.setObjectName(nombre) boxlayout.addWidget(lineEditNombre) if 'enabled' in kwargs: lineEditNombre.setEnabled(kwargs['enabled']) self.controles[nombre] = lineEditNombre if lAgrega: self.verticalLayoutDatos.addLayout(boxlayout) return boxlayout
class Periodo(QHBoxLayout): cPeriodo = '' dInicio = None #date que indica el primer dia del mes dFin = None #date que indica el ultimo dia del mes textoEtiqueta = '' def __init__(self, parent=None, *args, **kwargs): QHBoxLayout.__init__(self) if 'texto' in kwargs: textoEtiqueta = kwargs['texto'] self.labelPeriodo = Etiqueta(parent, texto=textoEtiqueta) self.labelPeriodo.setObjectName("labelPeriodo") self.addWidget(self.labelPeriodo) self.lineEditMes = Spinner(parent) self.lineEditMes.setDecimals(0) self.lineEditMes.setObjectName("lineEditMes") self.addWidget(self.lineEditMes) self.lineEditAnio = Spinner(parent) self.lineEditAnio.setDecimals(0) self.lineEditAnio.setObjectName("lineEditAnio") self.addWidget(self.lineEditAnio) self.lineEditMes.proximoWidget = self.lineEditAnio self.lineEditAnio.valueChanged.connect(self.ActualizaPeriodo) self.lineEditMes.valueChanged.connect(self.ActualizaPeriodo) self.lineEditAnio.setValue(datetime.date.today().year) self.lineEditMes.setValue(datetime.date.today().month) self.lineEditMes.setMinimum(1.) self.lineEditMes.setMaximum(12.) self.lineEditAnio.setMinimum(2000.) self.lineEditAnio.setMaximum(2050.) self.lineEditAnio.setValue(datetime.date.today().year) def ActualizaPeriodo(self): self.cPeriodo = self.lineEditAnio.text() + str( self.lineEditMes.text()).zfill(2) if self.lineEditMes.value() >= 1 and self.lineEditMes.value() <= 12: self.dInicio = InicioMes( datetime.date(int(self.lineEditAnio.value()), int(self.lineEditMes.value()), 1)) self.dFin = FinMes(self.dInicio)
class ValidaConNombre(QHBoxLayout): textoEtiqueta = 'Nombre' modelo = None campoNombre = None campoRetorno = None camposTabla = [] largo = 0 maxwidth = 50 def __init__(self, parent=None, *args, **kwargs): super().__init__(parent) if 'texto' in kwargs: self.textoEtiqueta = kwargs['texto'] self.labelNombre = Etiqueta(parent, texto=self.textoEtiqueta) self.labelNombre.setObjectName("labelNombre") self.addWidget(self.labelNombre) self.lineEditCodigo = Validaciones(parent) self.lineEditCodigo.setObjectName("lineEditNombre") self.lineEditCodigo.modelo = self.modelo self.lineEditCodigo.campoNombre = self.campoNombre self.lineEditCodigo.campoRetorno = self.campoRetorno self.lineEditCodigo.cOrden = self.campoNombre self.lineEditCodigo.camposTabla = self.camposTabla self.lineEditCodigo.campos = self.lineEditCodigo.camposTabla self.lineEditCodigo.largo = self.largo self.lineEditCodigo.setMaximumWidth(self.maxwidth) self.addWidget(self.lineEditCodigo) self.labelDescripcion = EtiquetaRoja(parent, texto="") self.labelDescripcion.setObjectName("labelDescripcion") self.addWidget(self.labelDescripcion) self.lineEditCodigo.widgetNombre = self.labelDescripcion