def __init__(self, table_p, parent, product=None, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) self.table_p = table_p self.prod = product self.parent = parent self.filename = "Parcourire ..." self.path_filename = None if self.prod: self.title = u"Modification de l'article {}".format(self.prod.name) self.succes_msg = u"L'article <b>%s</b> a été mise à jour" % self.prod.name try: self.filename = self.prod.file_join.file_name except: pass else: self.succes_msg = u"L'article a été bien enregistré" self.title = u"Ajout de nouvel article" self.prod = Product() self.setWindowTitle(self.title) # self.code = LineEdit(self.prod.code) self.name_field = LineEdit(self.prod.name) try: self.category_name = Category.select().where( Category.name == self.prod.category.name).get().name except: self.category_name = "" self.category_field = LineEdit(self.category_name) self.number_parts_box_field = IntLineEdit( str(self.prod.number_parts_box)) self.number_parts_box_field.setValidator(QIntValidator()) completion_values = [catg.name for catg in Category.all()] completer = QCompleter(completion_values, parent=self) completer.setCaseSensitivity(Qt.CaseInsensitive) completer.setCompletionMode(QCompleter.UnfilteredPopupCompletion) self.category_field.setCompleter(completer) vbox = QVBoxLayout() formbox = QFormLayout() formbox.addRow(FLabel(u"Nom"), self.name_field) formbox.addRow(FLabel(u"Categorie"), self.category_field) # formbox.addRow( # FLabel(u"Quantité (carton)"), self.number_parts_box_field) self.butt_parco = QPushButton( QIcon.fromTheme('document-open', QIcon('')), self.filename) self.butt_parco.clicked.connect(self.import_image) butt_cancel = Warning_btt(u"Annuler") butt_cancel.clicked.connect(self.cancel) # formbox.addRow(FLabel(u"Image"), self.butt_parco) butt = Button_save(u"&Enregistrer") butt.clicked.connect(self.add_or_edit_prod) formbox.addRow(butt_cancel, butt) vbox.addLayout(formbox) self.setLayout(vbox)
def __init__(self, table_group, parent, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) vbox = QVBoxLayout() vbox.addWidget(FBoxTitle(u"Ajout d'un nouveau groupe")) self.parent = table_group self.name = LineEdit() formbox = QGridLayout() self.error_field = FLabel(u"") formbox.addWidget(self.error_field, 0, 1) formbox.addWidget(FLabel(u"Nom"), 1, 0) formbox.addWidget(self.name, 1, 1) butt = Button(u"Enregistrer") butt.clicked.connect(self.edit_prod) cancel_but = Button(u"Annuler") cancel_but.clicked.connect(self.cancel) formbox.addWidget(butt, 2, 1) formbox.addWidget(cancel_but, 2, 0) formbox.setColumnStretch(3, 3) formbox.setRowStretch(2, 2) vbox.addLayout(formbox) self.setLayout(vbox)
def __init__(self, parent, *args, **kwargs): super(FWidget, self).__init__(parent=parent, *args, **kwargs) self.parent = parent vbox = QVBoxLayout() editbox = QGridLayout() self.search_field = LineEdit() # self.search_field.textChanged.connect(self.search) self.search_field.setToolTip(u"Taper le nom ou le numéro de " u"téléphone à chercher") editbox.addWidget(self.search_field, 0, 0) search_but = Button("") search_but.setIcon(QIcon.fromTheme('search', QIcon(''))) search_but.clicked.connect(self.search) editbox.addWidget(search_but, 0, 1) # self.empty = FLabel(u"") # editbox.addWidget(self.empty, 1, 0) addgroup_but = Button(u"Nouveau groupe") addgroup_but.setIcon(QIcon.fromTheme('document-new', QIcon(''))) addgroup_but.clicked.connect(self.addgroup) self.contact_grp = Button(u"Envoyer à groupe") self.contact_grp.setIcon(QIcon.fromTheme('document-new', QIcon(''))) self.contact_grp.clicked.connect(self.contact_group) self.contact_grp.setEnabled(False) editbox.addWidget(addgroup_but, 2, 0) editbox.addWidget(self.contact_grp, 1, 0) vbox.addLayout(editbox) self.setLayout(vbox)
def __init__(self, parent=0, *args, **kwargs): super(DebtsViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parent = parent self.parentWidget().setWindowTitle(Config.NAME_ORGA + u"Gestion des dettes") hbox = QHBoxLayout(self) # self.balace_box = QGridLayout(self) # self.balace_box.addWidget(FLabel(u"Reste à payer :"), 0, 2) # self.balace_box.setRowStretch(1, 2) self.remaining_box = FLabel() self.remaining_box.setMaximumHeight(40) self.table_debt = DebtsTableWidget(parent=self) self.table_provid_clt = ProviderOrClientTableWidget(parent=self) self.search_field = LineEdit() self.search_field.textChanged.connect(self.search) self.search_field.setPlaceholderText(u"Nom ou numéro tel") self.search_field.setMaximumHeight(40) splitter = QSplitter(Qt.Horizontal) self.splitter_left = QSplitter(Qt.Vertical) self.splitter_left.addWidget(self.search_field) self.splitter_left.addWidget(self.table_provid_clt) splt_clt = QSplitter(Qt.Vertical) splt_clt.addWidget(self.remaining_box) splt_clt.addWidget(self.table_debt) splt_clt.resize(900, 1000) splitter.addWidget(self.splitter_left) splitter.addWidget(splt_clt) hbox.addWidget(splitter) self.setLayout(hbox)
def organization_group_box(self): self.organGroupBoxBtt = QGroupBox(self.tr("Nouvelle Organisation")) self.liste_devise = Organization.DEVISE # Combobox widget self.box_devise = QComboBox() for index in self.liste_devise: self.box_devise.addItem("{} {}".format( self.liste_devise[index], index)) self.checked = QCheckBox("Active") self.checked.setChecked(True) self.checked.setToolTip(u"""Cocher si vous voulez pour deactive le login continue à utiliser le systeme""") self.name_orga = LineEdit() self.phone = IntLineEdit() self.bp = LineEdit() self.adress_org = QTextEdit() self.email_org = LineEdit() formbox = QFormLayout() formbox.addRow(FormLabel(u"Nom de l'organisation *"), self.name_orga) formbox.addRow(FormLabel(u"Tel *"), self.phone) formbox.addRow( FormLabel(u"Activer la saisie de mot de passe"), self.checked) formbox.addRow(FormLabel(u"Devise"), self.box_devise) formbox.addRow(FormLabel(u"B.P"), self.bp) formbox.addRow(FormLabel(u"E-mail:"), self.email_org) formbox.addRow(FormLabel(u"Adresse complete:"), self.adress_org) butt = Button_save(u"Enregistrer") butt.clicked.connect(self.save_edit) formbox.addRow("", butt) self.organGroupBoxBtt.setLayout(formbox)
def __init__(self, parent=0, *args, **kwargs): super(CooperativeSocietyViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parentWidget().set_window_title("SCOOP") self.parent = parent self.search_field = LineEdit() self.search_field.setPlaceholderText("Rechercher une coopérative") self.search_field.setMinimumSize(600, 80) self.search_field.textChanged.connect(self.finder) self.btt_xlsx_export = BttExportXLSX("") self.btt_xlsx_export.clicked.connect(self.export_xlsx) self.btt_xlsx_export.setMaximumWidth(40) self.btt_xlsx_export.setEnabled(False) self.string_list = [] self.title_field = FPageTitle("Gestion des Sociétés coopératives") self.table = MemberTableWidget(parent=self) editbox = QGridLayout() editbox.addWidget(self.search_field, 1, 0) editbox.setColumnStretch(1, 1) editbox.addWidget(self.btt_xlsx_export, 1, 2) vbox = QVBoxLayout() vbox.addWidget(self.title_field) vbox.addLayout(editbox) vbox.addWidget(self.table) self.setLayout(vbox)
def __init__(self, parent, dmd=None, *args, **kwargs): super(FWidget, self).__init__(parent=parent, *args, **kwargs) self.parent = parent self.dmd = parent.dmd self.search_field = LineEdit() self.search_field.setPlaceholderText("Rechercher un membre") # self.search_field.setMaximumWidth(400) self.search_field.setMaximumSize(900, 100) self.search_field.textChanged.connect(self.finder) self.string_list = [] self.new_demande_btt = Button("Nouveau Membre") self.new_demande_btt.setMaximumWidth(400) self.new_demande_btt.setIcon(QIcon.fromTheme('save', QIcon( u"{}add.png".format(Config.img_media)))) self.new_demande_btt.clicked.connect(self.add_member) self.table = MemberTableWidget(parent=self) editbox = QGridLayout() editbox.addWidget(self.search_field, 1, 0) editbox.setColumnStretch(1, 1) editbox.addWidget(self.new_demande_btt, 1, 3) vbox = QVBoxLayout() vbox.addLayout(editbox) vbox.addWidget(self.table) self.setLayout(vbox)
def office_group_box(self): self.organGroupBoxBtt = QGroupBox( self.tr("Configuration des localités")) self.office_box = QComboBox() self.office_box.currentIndexChanged.connect(self.change_select_office) self.office_list = get_offices() self.region_box = QComboBox() self.region_label = FLabel() self.cercle_label = FLabel() self.phone_field = IntLineEdit() self.phone_field.setInputMask('## ## ## ##') self.bp = LineEdit() self.adress_org = QTextEdit() self.email_org = LineEdit() for index, value in enumerate(self.office_list): self.office_box.addItem("{}".format(office_name(value)), value) formbox = QFormLayout() formbox.addRow(FormLabel(u"Nom service :"), self.office_box) formbox.addRow(FormLabel(u"Région"), self.region_label) formbox.addRow(FormLabel(u"Cercle"), self.cercle_label) formbox.addRow(FormLabel(u"Tel :"), self.phone_field) formbox.addRow(FormLabel(u"B.P :"), self.bp) formbox.addRow(FormLabel(u"E-mail :"), self.email_org) formbox.addRow(FormLabel(u"Adresse complete :"), self.adress_org) butt = Button_save(u"Enregistrer") butt.clicked.connect(self.save_edit) formbox.addRow("", butt) self.organGroupBoxBtt.setLayout(formbox)
def __init__(self, parent=0, *args, **kwargs): super(ResgistrationManagerWidget, self).__init__(parent=parent, *args, **kwargs) self.parent = parent self.search_field = LineEdit() self.search_field.setPlaceholderText("Rechercher une demande") self.search_field.setMinimumSize(600, 80) self.search_field.textChanged.connect(self.finder) self.string_list = [] self.title_field = FPageTitle("Gestion des demandes") self.new_demande_btt = Button("Nouvelle demande") self.new_demande_btt.setMaximumWidth(400) self.new_demande_btt.setIcon( QIcon.fromTheme('save', QIcon(u"{}add.png".format(Config.img_media)))) self.new_demande_btt.clicked.connect(self.goto_demande) self.table = DemandeTableWidget(parent=self) editbox = QGridLayout() editbox.addWidget(self.search_field, 1, 0) editbox.setColumnStretch(1, 1) editbox.addWidget(self.new_demande_btt, 1, 3) vbox = QVBoxLayout() vbox.addWidget(self.title_field) vbox.addLayout(editbox) vbox.addWidget(self.table) self.setLayout(vbox)
def __init__(self, pp=None, owner=None, parent=None, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) self.setWindowTitle(u"Nouvel utilisateur") self.parent = parent self.pp = pp self.owner = owner vbox = QVBoxLayout() formbox = QFormLayout() self.checked = QCheckBox("Active") self.error_mssg = "" if self.owner: self.new = False self.title = u"Modification de l'utilisateur {}".format( self.owner.username) self.succes_msg = u"L'utilisateur a été bien mise à jour" if self.owner.isactive: self.checked.setCheckState(Qt.Checked) else: self.checked.setCheckState(Qt.Checked) self.new = True self.succes_msg = u"L'utilisateur a été bien enregistré" self.title = u"Création d'un nouvel utilisateur" self.owner = Owner() # self.checked.setToolTip(msg) self.setWindowTitle(self.title) self.username_field = LineEdit(self.owner.username) self.username_field.setEnabled(self.new) self.password_field = LineEdit() self.password_field.setEchoMode(LineEdit.PasswordEchoOnEdit) self.password_field_v = LineEdit() self.password_field_v.setEchoMode(LineEdit.PasswordEchoOnEdit) self.password_field_v.textChanged.connect( self.check_password_is_valide) self.phone_field = IntLineEdit(self.owner.phone) self.liste_group = [Owner.ADMIN, Owner.USER] # Combobox widget self.box_group = QComboBox() for index in self.liste_group: self.box_group.addItem(u'%(group)s' % {'group': index}) butt = Button_save(u"Enregistrer") butt.clicked.connect(self.add_or_edit_user) cancel_but = Button(u"Annuler") cancel_but.clicked.connect(self.cancel) formbox.addRow(FLabel(u"Identifiant"), self.username_field) formbox.addRow(FLabel(u"Mot de passe"), self.password_field) if self.new: formbox.addRow( FLabel(u"Verification du Mot de passe"), self.password_field_v) formbox.addRow(FLabel(u"Numero de Téléphone"), self.phone_field) formbox.addRow(FLabel(u"Groupe"), self.box_group) formbox.addRow(cancel_but, butt) vbox.addWidget(self.checked) vbox.addLayout(formbox) self.setLayout(vbox)
def __init__(self, table_group, parent, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) self.parent = table_group group_id = self.parent.table_group.group.group_id self.group = Group.select().where(Group.id == group_id).get() vbox = QVBoxLayout() vbox.addWidget( FBoxTitle(u"<h3>Groupe: {}</h3>".format(self.group.name))) self.order_number = LineEdit() # form transfer self.amount = LineEdit() self.amount.setFont(QFont("Arial", 15)) self.amount.setValidator(QIntValidator()) self.amount.setToolTip(u"Taper le montant du transfert") # self.solde = FLabel(get_solde()) self.amount_error = ErrorLabel(u"") send_butt = Button(u"Envoyer") send_butt.clicked.connect(self.sender) cancel_but = Button(u"Annuler") cancel_but.clicked.connect(self.cancel) formbox = QGridLayout() formbox.addWidget(FLabel(u"Montant: "), 0, 0) formbox.addWidget(self.amount, 0, 1) formbox.addWidget(send_butt, 2, 1) formbox.addWidget(cancel_but, 2, 0) vbox.addLayout(formbox) self.setLayout(vbox)
def activationGroupBox(self): self.topLeftGroupBoxBtt = QGroupBox(self.tr("Nouvelle license")) self.setWindowTitle(u"License") self.parentWidget().setWindowTitle(u"Activation de la license") self.code_field = PyTextViewer( u"""Vous avez besoin du code ci desous pour l'activation:<hr> <b>{code}</b><hr> <h4>Contacts:</h4>{contact}""". format(code=SettingsAdmin().select().get().clean_mac, contact=Constants.TEL_AUT)) self.name_field = LineEdit() self.license_field = QTextEdit() self.pixmap = QPixmap("") self.image = FLabel(self) self.image.setPixmap(self.pixmap) butt = Button_save(u"Enregistrer") butt.clicked.connect(self.add_lience) editbox = QGridLayout() editbox.addWidget(FLabel(u"Nom: "), 0, 0) editbox.addWidget(self.name_field, 0, 1) editbox.addWidget(FLabel(u"License: "), 1, 0) editbox.addWidget(self.license_field, 1, 1) editbox.addWidget(self.code_field, 1, 2) editbox.addWidget(self.image, 5, 1) editbox.addWidget(butt, 6, 1) self.topLeftGroupBoxBtt.setLayout(editbox)
def __init__(self, parent=0, *args, **kwargs): super(BuyViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parentWidget().setWindowTitle(Config.APP_NAME + u" Arrivage d'article") self.parent = parent vbox = QVBoxLayout() hbox = QHBoxLayout() editbox = QGridLayout() self.date = FormatDate(QDate.currentDate()) self.name_client = LineEdit() self.search_field = LineEdit() self.search_field.setPlaceholderText("Rechercher un article") self.search_field.setMaximumHeight(40) self.search_field.textChanged.connect(self.finder) # self.search_field.setFixedWidth(200) self.add_prod = Button(u"+ &Article") self.add_prod.clicked.connect(self.add_product) self.add_prod.setFixedWidth(80) # self.add_prod.setFixedHeight(20) self.add_prod.setStyleSheet("Text-align:botton") self.add_prod.setToolTip("Ajouter un nouvel article") self.table_buy = BuyTableWidget(parent=self) self.table_resultat = ResultatTableWidget(parent=self) self.table_info = InfoTableWidget(parent=self) editbox.addWidget(self.add_prod, 0, 1) editbox.addWidget(FormLabel(u"Date d'achat:"), 0, 4) editbox.addWidget(self.date, 0, 5) editbox.setColumnStretch(3, 3) splitter = QSplitter(Qt.Horizontal) splitter_left = QSplitter(Qt.Vertical) splitter_down = QSplitter(Qt.Vertical) splitter_left.addWidget(self.search_field) splitter_left.addWidget(self.table_resultat) splitter_down.resize(35, 20) splitter_down.addWidget(self.table_info) splitter_rigth = QSplitter(Qt.Vertical) splitter_rigth.addWidget(self.table_buy) splitter_rigth.resize(800, 900) splitter_left.addWidget(splitter_down) splitter.addWidget(splitter_left) splitter.addWidget(splitter_rigth) hbox.addWidget(splitter) vbox.addLayout(editbox) vbox.addLayout(hbox) self.setLayout(vbox)
class GroupViewWidget(QDialog, FWidget): def __init__(self, table_group, parent, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) vbox = QVBoxLayout() vbox.addWidget(FBoxTitle(u"Ajout d'un nouveau groupe")) self.parent = table_group self.name = LineEdit() formbox = QGridLayout() self.error_field = FLabel(u"") formbox.addWidget(self.error_field, 0, 1) formbox.addWidget(FLabel(u"Nom"), 1, 0) formbox.addWidget(self.name, 1, 1) butt = Button(u"Enregistrer") butt.clicked.connect(self.edit_prod) cancel_but = Button(u"Annuler") cancel_but.clicked.connect(self.cancel) formbox.addWidget(butt, 2, 1) formbox.addWidget(cancel_but, 2, 0) formbox.setColumnStretch(3, 3) formbox.setRowStretch(2, 2) vbox.addLayout(formbox) self.setLayout(vbox) def cancel(self): self.close() def isvalid(self): if unicode(self.name.text()) == "": return False def edit_prod(self): self.error_field.setStyleSheet("") name = unicode(self.name.text()) if name == "": self.error_field.setStyleSheet("font-size:20px; color: red") self.error_field.setText(u"Ce champ est obligatoire.") return False group = Group() try: group.name = name group.save() self.cancel() self.parent.table_group.refresh_() except sqlite3.IntegrityError: self.error_field.setStyleSheet("font-size:20px; color: red") self.error_field.setText(u"%s existe déjà" % name)
class OperationWidget(FWidget): """docstring for OperationWidget""" def __init__(self, parent, *args, **kwargs): super(FWidget, self).__init__(parent=parent, *args, **kwargs) self.parent = parent vbox = QVBoxLayout() editbox = QGridLayout() self.search_field = LineEdit() # self.search_field.textChanged.connect(self.search) self.search_field.setToolTip(u"Taper le nom ou le numéro de " u"téléphone à chercher") editbox.addWidget(self.search_field, 0, 0) search_but = Button("") search_but.setIcon(QIcon.fromTheme('search', QIcon(''))) search_but.clicked.connect(self.search) editbox.addWidget(search_but, 0, 1) # self.empty = FLabel(u"") # editbox.addWidget(self.empty, 1, 0) addgroup_but = Button(u"Nouveau groupe") addgroup_but.setIcon(QIcon.fromTheme('document-new', QIcon(''))) addgroup_but.clicked.connect(self.addgroup) self.contact_grp = Button(u"Envoyer à groupe") self.contact_grp.setIcon(QIcon.fromTheme('document-new', QIcon(''))) self.contact_grp.clicked.connect(self.contact_group) self.contact_grp.setEnabled(False) editbox.addWidget(addgroup_but, 2, 0) editbox.addWidget(self.contact_grp, 1, 0) vbox.addLayout(editbox) self.setLayout(vbox) def search(self): search_term = self.search_field.text() self.search_field.setStyleSheet("") self.search_field.setText(u"") self.parent.table_contact.refresh_(search=search_term) self.search_field.clear() # self.search_field.setStyleSheet("font-size:20px; color: red") # self.search_field.setToolTip(u"{} n'existe pas".format(search_term)) def addgroup(self): """ Affiche un QDialog qui permet d'ajouter un nouveau groupe """ self.parent.open_dialog(GroupViewWidget, modal=True, table_group=self.parent) def contact_group(self): self.parent.open_dialog(SendGroupViewWidget, modal=True, table_group=self.parent)
def __init__(self, parent, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) vbox = QVBoxLayout() vbox.addWidget(FBoxTitle(u" Configuration ")) self.sttg = LocalSetting.get(LocalSetting.slug == 1) self.baudrate = LineEdit(self.sttg.baudrate) self.code_consultation = LineEdit(self.sttg.code_consultation) self.code_send = LineEdit(self.sttg.code_send) self.code_send.setEchoMode(LineEdit.Password) self.port = LineEdit(self.sttg.port) formbox = QGridLayout() formbox.addWidget(FLabel(u"Mon de passe"), 1, 0) formbox.addWidget(self.baudrate, 1, 1) formbox.addWidget(FLabel(u"Consultation"), 2, 0) formbox.addWidget(self.code_consultation, 2, 1) formbox.addWidget(FLabel(u"Code envoi"), 3, 0) formbox.addWidget(self.code_send, 3, 1) formbox.addWidget(FLabel(u"PORT"), 4, 0) formbox.addWidget(self.port, 4, 1) butt = Button(u"Enregistrer") butt.clicked.connect(self.edit_prod) cancel_but = Button(u"Annuler") cancel_but.clicked.connect(self.cancel) formbox.addWidget(butt, 5, 1) formbox.addWidget(cancel_but, 5, 0) formbox.setColumnStretch(3, 3) formbox.setRowStretch(2, 2) vbox.addLayout(formbox) self.setLayout(vbox)
class DebtsViewWidget(FWidget): """ Shows the home page """ def __init__(self, parent=0, *args, **kwargs): super(DebtsViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parent = parent self.parentWidget().setWindowTitle(Config.NAME_ORGA + u"Gestion des dettes") hbox = QHBoxLayout(self) # self.balace_box = QGridLayout(self) # self.balace_box.addWidget(FLabel(u"Reste à payer :"), 0, 2) # self.balace_box.setRowStretch(1, 2) self.remaining_box = FLabel() self.remaining_box.setMaximumHeight(40) self.table_debt = DebtsTableWidget(parent=self) self.table_provid_clt = ProviderOrClientTableWidget(parent=self) self.search_field = LineEdit() self.search_field.textChanged.connect(self.search) self.search_field.setPlaceholderText(u"Nom ou numéro tel") self.search_field.setMaximumHeight(40) splitter = QSplitter(Qt.Horizontal) self.splitter_left = QSplitter(Qt.Vertical) self.splitter_left.addWidget(self.search_field) self.splitter_left.addWidget(self.table_provid_clt) splt_clt = QSplitter(Qt.Vertical) splt_clt.addWidget(self.remaining_box) splt_clt.addWidget(self.table_debt) splt_clt.resize(900, 1000) splitter.addWidget(self.splitter_left) splitter.addWidget(splt_clt) hbox.addWidget(splitter) self.setLayout(hbox) def search(self): self.table_provid_clt.refresh_(self.search_field.text()) def new_refund(self, provid_clt): from ui.refund_edit_add import RefundEditAddDialog self.parent.open_dialog(RefundEditAddDialog, modal=True, type_=Refund.RB, provid_clt=provid_clt, table_p=self.table_debt)
def __init__(self, table_group, parent, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) self.parent = table_group group_id = self.parent.table_group.group.group_id self.group = Group.select().where(Group.id == group_id).get() vbox = QVBoxLayout() vbox.addWidget(FBoxTitle( u"<h3>Groupe: {}</h3>".format(self.group.name))) self.order_number = LineEdit() # form transfer self.amount = LineEdit() self.amount.setFont(QFont("Arial", 15)) self.amount.setValidator(QIntValidator()) self.amount.setToolTip(u"Taper le montant du transfert") # self.solde = FLabel(get_solde()) self.amount_error = ErrorLabel(u"") send_butt = Button(u"Envoyer") send_butt.clicked.connect(self.sender) cancel_but = Button(u"Annuler") cancel_but.clicked.connect(self.cancel) formbox = QGridLayout() formbox.addWidget(FLabel(u"Montant: "), 0, 0) formbox.addWidget(self.amount, 0, 1) formbox.addWidget(send_butt, 2, 1) formbox.addWidget(cancel_but, 2, 0) vbox.addLayout(formbox) self.setLayout(vbox)
def __init__(self, parent=0, *args, **kwargs): super(DashbordViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parentWidget().setWindowTitle(Config.APP_NAME + " TABLEAU DE BORD") self.parent = parent vbox = QVBoxLayout() table_invoice = QVBoxLayout() table_buying = QVBoxLayout() self.search_field = LineEdit() self.search_field.setPlaceholderText("Rechercher") self.search_field.setMaximumSize(500, self.search_field.maximumSize().height()) self.search_field.textChanged.connect(self.finder) self.title = FPageTitle("TABLEAU DE BORD") self.title_buying = FBoxTitle("L'arivages ") self.table_buying = BuyTableWidget(parent=self) table_buying.addWidget(self.title_buying) table_buying.addWidget(self.table_buying) self.title_invoice = FBoxTitle("Les Factures") self.table_invoice = InvoiceTableWidget(parent=self) table_invoice.addWidget(self.search_field) table_invoice.addWidget(self.table_invoice) tab_widget = tabbox((table_invoice, "Factures"), (table_buying, "Arivages ")) vbox.addWidget(self.title) vbox.addWidget(tab_widget) self.setLayout(vbox)
def __init__(self, parent=0, *args, **kwargs): super(DebtsViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parent = parent self.parentWidget().setWindowTitle( Config.NAME_ORGA + u"Gestion des dettes") hbox = QHBoxLayout(self) self.table_debt = DebtsTableWidget(parent=self) self.table_provid_clt = ProviderOrClientTableWidget(parent=self) self.search_field = LineEdit() self.search_field.textChanged.connect(self.search) self.search_field.setPlaceholderText(u"Nom ou numéro tel") splitter = QSplitter(Qt.Horizontal) self.splitter_left = QSplitter(Qt.Vertical) self.splitter_left.addWidget(self.search_field) self.splitter_left.addWidget(self.table_provid_clt) splt_clt = QSplitter(Qt.Vertical) splt_clt.addWidget(self.table_debt) splt_clt.resize(900, 1000) splitter.addWidget(self.splitter_left) splitter.addWidget(splt_clt) hbox.addWidget(splitter) self.setLayout(hbox)
def activationGroupBox(self): self.topLeftGroupBoxBtt = QGroupBox(self.tr("Nouvelle license")) self.setWindowTitle(u"License") self.parentWidget().setWindowTitle(u"Activation de la license") self.code_field = PyTextViewer(u"""Vous avez besoin du code ci desous pour l'activation:<hr> <b>{code}</b><hr> <h4>Contacts:</h4>{contact}""" .format(code=SettingsAdmin().select().get().clean_mac, contact=Constants.TEL_AUT)) self.name_field = LineEdit() self.license_field = QTextEdit() self.pixmap = QPixmap("") self.image = FLabel(self) self.image.setPixmap(self.pixmap) butt = Button_save(u"Enregistrer") butt.clicked.connect(self.add_lience) editbox = QGridLayout() editbox.addWidget(FLabel(u"Nom: "), 0, 0) editbox.addWidget(self.name_field, 0, 1) editbox.addWidget(FLabel(u"License: "), 1, 0) editbox.addWidget(self.license_field, 1, 1) editbox.addWidget(self.code_field, 1, 2) editbox.addWidget(self.image, 5, 1) editbox.addWidget(butt, 6, 1) self.topLeftGroupBoxBtt.setLayout(editbox)
def createHomeGroupBox(self): self.homegbox = QGroupBox() self.table = OperationTableWidget(parent=self) table_box = QVBoxLayout() self.title_table = FPageTitle(u"Historique des transferts") table_box.addWidget(self.title_table) table_box.addWidget(self.table) # form transfer self.number = LineEdit() self.number.setInputMask("D9.99.99.99") self.number.setAlignment(Qt.AlignCenter) self.number.setFont(QFont("Arial", 17)) self.number.setToolTip(u"""Taper le nom ou le numéro de téléphone du beneficiare""") self.amount = LineEdit() self.amount.setFont(QFont("Arial", 15)) self.amount.setValidator(QIntValidator()) self.amount.setToolTip(u"Taper le montant du transfert") self.password_field = EnterTabbedLineEdit() self.password_field.setFont(QFont("Arial", 15)) self.password_field.setEchoMode(LineEdit.Password) self.password_field.setToolTip(u"Taper le code orange money") self.msg_field = FLabel("") butt = Button(u"Envoyer") butt.clicked.connect(self.get_or_creat_nbr) formbox = QGridLayout() formbox.addWidget(FLabel(u"Numéro"), 0, 0) formbox.addWidget(self.number, 1, 0) formbox.addWidget(FLabel(u"Montant"), 0, 1) formbox.addWidget(self.amount, 1, 1) formbox.addWidget(FLabel(u"code"), 0, 2) formbox.addWidget(self.password_field, 1, 2) formbox.addWidget(self.msg_field, 0, 5) formbox.addWidget(butt, 1, 4) formbox.setColumnStretch(5, 3) transfer_box = QVBoxLayout() # formbox.setSizeConstraint(QLayout.SetFixedSize) transfer_box.addWidget(self.title) transfer_box.addLayout(formbox) transfer_box.addLayout(table_box) # self.setLayout(transfer_box) self.homegbox.setLayout(transfer_box)
def __init__(self, parent, *args, **kwargs): super(FWidget, self).__init__(parent=parent, *args, **kwargs) self.organization = Organization().get(id=1) print(self.organization) self.parent = parent vbox = QVBoxLayout() # vbox.addWidget(FPageTitle(u"Utilisateur: %s " % # self.organisation.name_orga)) self.liste_devise = Organization.DEVISE # Combobox widget self.box_devise = QComboBox() for index, value in enumerate(self.liste_devise): self.box_devise.addItem( "{} {}".format(self.liste_devise[value], value)) if self.organization.devise == value: self.box_devise.setCurrentIndex(index) self.checked = QCheckBox("Active") if self.organization.is_login: self.checked.setCheckState(Qt.Checked) self.checked.setToolTip(u"""Cocher si vous voulez pour deactive le login continue à utiliser le systeme""") self.name_orga = LineEdit(self.organization.name_orga) self.phone = IntLineEdit(str(self.organization.phone)) self.bp = LineEdit(self.organization.bp) self.adress_org = QTextEdit(self.organization.adress_org) self.email_org = LineEdit(self.organization.email_org) formbox = QFormLayout() formbox.addRow(FormLabel(u"Nom de l'organisation:"), self.name_orga) formbox.addRow(FormLabel(u"Tel:"), self.phone) formbox.addRow(FormLabel(u"Activer le login"), self.checked) formbox.addRow(FormLabel(u"Devise :"), self.box_devise) formbox.addRow(FormLabel(u"B.P:"), self.bp) formbox.addRow(FormLabel(u"E-mail:"), self.email_org) formbox.addRow(FormLabel(u"Adresse complete:"), self.adress_org) butt = Button_save(u"Enregistrer") butt.clicked.connect(self.save_edit) formbox.addRow("", butt) vbox.addLayout(formbox) self.setLayout(vbox)
def __init__(self, parent, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) vbox = QVBoxLayout() vbox.addWidget(FBoxTitle(u"<h3>Ajout de contact </h3>")) self.combo_grp = QComboBox() groups = Group() groups.name = "Aucun" self.list_grp = Group.all() self.list_grp.append(groups) self.list_grp.reverse() for index in self.list_grp: sentence = u"%(name)s" % {'name': index.name} self.combo_grp.addItem(sentence) self.full_name = LineEdit() self.msg_e_or_c = FLabel("") self.full_name.setFont(QFont("Arial", 16)) self.phone_number = IntLineEdit() self.phone_number.setInputMask("D9.99.99.99") self.phone_number.setAlignment(Qt.AlignCenter) self.phone_number.setFont(QFont("Arial", 16)) send_butt = Button(u"Enregistrer") send_butt.clicked.connect(self.save_form) cancel_but = Button(u"Fermer") cancel_but.clicked.connect(self.cancel) formbox = QGridLayout() formbox.addWidget(FLabel(u"Groupes:"), 0, 0) formbox.addWidget(self.combo_grp, 1, 0) formbox.addWidget(FLabel(u"Nom complèt: "), 0, 1) formbox.addWidget(self.full_name, 1, 1) formbox.addWidget(FLabel(u"Numéro: "), 0, 2) formbox.addWidget(self.phone_number, 1, 2) formbox.addWidget(send_butt, 2, 1) formbox.addWidget(cancel_but, 2, 0) formbox.addWidget(self.msg_e_or_c, 3, 0, 3, 2) vbox.addLayout(formbox) self.setLayout(vbox)
class DebtsViewWidget(FWidget): """ Shows the home page """ def __init__(self, parent=0, *args, **kwargs): super(DebtsViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parent = parent self.parentWidget().setWindowTitle( Config.NAME_ORGA + u"Gestion des dettes") hbox = QHBoxLayout(self) self.table_debt = DebtsTableWidget(parent=self) self.table_provid_clt = ProviderOrClientTableWidget(parent=self) self.search_field = LineEdit() self.search_field.textChanged.connect(self.search) self.search_field.setPlaceholderText(u"Nom ou numéro tel") splitter = QSplitter(Qt.Horizontal) self.splitter_left = QSplitter(Qt.Vertical) self.splitter_left.addWidget(self.search_field) self.splitter_left.addWidget(self.table_provid_clt) splt_clt = QSplitter(Qt.Vertical) splt_clt.addWidget(self.table_debt) splt_clt.resize(900, 1000) splitter.addWidget(self.splitter_left) splitter.addWidget(splt_clt) hbox.addWidget(splitter) self.setLayout(hbox) def search(self): self.table_provid_clt.refresh_(self.search_field.text()) def new_refund(self, provid_clt): from ui.refund_edit_add import RefundEditAddDialog self.parent.open_dialog( RefundEditAddDialog, modal=True, type_=Refund.RB, provid_clt=provid_clt, table_p=self.table_debt)
def __init__(self, parent=0, *args, **kwargs): super(BuyViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parentWidget().setWindowTitle( Config.APP_NAME + u" Arrivage d'article") self.parent = parent vbox = QVBoxLayout(self) hbox = QHBoxLayout(self) editbox = QGridLayout() self.date = FormatDate(QDate.currentDate()) self.name_client = LineEdit() self.search_field = LineEdit() self.search_field.setPlaceholderText("Rechercher un article") self.search_field.textChanged.connect(self.finder) # self.search_field.setFixedWidth(200) self.add_prod = Button(u"+ &Article") self.add_prod.clicked.connect(self.add_product) self.add_prod.setFixedWidth(80) # self.add_prod.setFixedHeight(20) self.add_prod.setStyleSheet("Text-align:botton") self.add_prod.setToolTip("Ajouter un nouvel article") self.table_buy = BuyTableWidget(parent=self) self.table_resultat = ResultatTableWidget(parent=self) self.table_info = InfoTableWidget(parent=self) editbox.addWidget(self.add_prod, 0, 1) editbox.addWidget(FormLabel(u"Date d'achat:"), 0, 4) editbox.addWidget(self.date, 0, 5) editbox.setColumnStretch(3, 3) splitter = QSplitter(Qt.Horizontal) splitter_left = QSplitter(Qt.Vertical) splitter_down = QSplitter(Qt.Vertical) splitter_left.addWidget(self.search_field) splitter_left.addWidget(self.table_resultat) splitter_down.resize(35, 20) splitter_down.addWidget(self.table_info) splitter_rigth = QSplitter(Qt.Vertical) splitter_rigth.addWidget(self.table_buy) splitter_rigth.resize(800, 900) splitter_left.addWidget(splitter_down) splitter.addWidget(splitter_left) splitter.addWidget(splitter_rigth) hbox.addWidget(splitter) vbox.addLayout(editbox) vbox.addLayout(hbox) self.setLayout(vbox)
def __init__(self, parent=0, dmd=None, *args, **kwargs): super(MemberManagerWidget, self).__init__( parent=parent, *args, **kwargs) FPeriodHolder.__init__(self, *args, **kwargs) self.parent = parent self.dmd = dmd self.search_field = LineEdit() self.search_field.setPlaceholderText("Rechercher un membre") # self.search_field.setMaximumWidth(400) self.search_field.setMaximumSize(900, 100) self.search_field.textChanged.connect(self.finder) self.string_list = [] self.title_field = FPageTitle( "Gestion des membres de la {}".format(self.dmd.scoop)) self.end_demande_btt = Button("Fin de l'ajout") self.end_demande_btt.setMaximumWidth(400) self.end_demande_btt.clicked.connect(self.goto_immatriculation) if self.dmd.scoop.membres().count() < 4: self.end_demande_btt.setEnabled(False) self.new_demande_btt = Button("Nouveau Membre") self.new_demande_btt.setMaximumWidth(400) self.new_demande_btt.setIcon(QIcon.fromTheme('save', QIcon( u"{}add.png".format(Config.img_media)))) self.new_demande_btt.clicked.connect(self.add_member) self.table = MemberTableWidget(parent=self) editbox = QGridLayout() editbox.addWidget(self.search_field, 1, 0) editbox.setColumnStretch(1, 1) editbox.addWidget(self.new_demande_btt, 1, 3) editbox.addWidget(self.end_demande_btt, 1, 4) vbox = QVBoxLayout() vbox.addWidget(self.title_field) vbox.addLayout(editbox) vbox.addWidget(self.table) self.setLayout(vbox)
def __init__(self, parent=0, *args, **kwargs): super(DashbordViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parentWidget().setWindowTitle(Config.APP_NAME + u" TABLEAU DE BORD") self.parent = parent vbox = QVBoxLayout() table_invoice = QVBoxLayout() table_buying = QVBoxLayout() self.search_field = LineEdit() self.search_field.setPlaceholderText( "Taper un nom client ou num. facture") self.search_field.setMaximumSize( 500, self.search_field.maximumSize().height()) self.search_field.textChanged.connect(self.finder) self.title = FPageTitle("TABLEAU DE BORD") self.title_buying = FBoxTitle(u"L'arivages ") self.table_buying = BuyTableWidget(parent=self) table_buying.addWidget(self.title_buying) table_buying.addWidget(self.table_buying) self.title_invoice = FBoxTitle(u"Les Factures") self.table_invoice = InvoiceTableWidget(parent=self) table_invoice.addWidget(self.search_field) table_invoice.addWidget(self.table_invoice) tab_widget = tabbox((table_invoice, u"Factures"), (table_buying, u"Arivages ")) vbox.addWidget(self.title) vbox.addWidget(tab_widget) self.setLayout(vbox)
def __init__(self, table_group, parent, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) self.parent = table_group group_id = self.parent.table_group.group.group_id self.group = Group.select().where(Group.id == group_id).get() vbox = QVBoxLayout() vbox.addWidget( FBoxTitle( u"<h2>Envoi pour les ({0}) contactes du groupe <b>{1}</b></h2>" .format(len(self.group.contacts), self.group.name))) # form transfer self.amount = LineEdit() self.amount.setFont(QFont("Arial", 15)) self.amount.setValidator(QIntValidator()) self.amount.setToolTip(u"Taper le montant du transfert") self.amount_error = ErrorLabel(u"") self.password_field = EnterTabbedLineEdit() self.password_field.setEchoMode(LineEdit.Password) self.password_field.setToolTip(u"Taper le code orange money") self.send_butt = Button(u"Envoyer") self.send_butt.clicked.connect(self.sender) cancel_but = Button(u"Annuler") cancel_but.clicked.connect(self.cancel) formbox = QGridLayout() formbox.addWidget(FLabel(u"Montant: "), 0, 0) formbox.addWidget(self.amount, 0, 1) formbox.addWidget(FLabel(u"Code: "), 1, 0) formbox.addWidget(self.password_field, 1, 1) formbox.addWidget(self.send_butt, 2, 1) formbox.addWidget(cancel_but, 2, 0) self.isvalid() vbox.addLayout(formbox) self.setLayout(vbox)
def __init__(self, parent=0, *args, **kwargs): super(DashbordViewWidget, self).__init__( parent=parent, *args, **kwargs) self.parentWidget().setWindowTitle( Config.APP_NAME + u" TABLEAU DE BORD") self.parent = parent vbox = QVBoxLayout() table_invoice = QVBoxLayout() table_alert = QVBoxLayout() table_mouvement = QVBoxLayout() self.search_field = LineEdit() self.search_field.setToolTip("Rechercher un produit") self.search_field.setMaximumSize( 500, self.search_field.maximumSize().height()) self.search_field.textChanged.connect(self.finder) self.title = FPageTitle("TABLEAU DE BORD") self.title_alert = FBoxTitle(u"Les alertes ") self.table_alert = AlertTableWidget(parent=self) # table_alert.addWidget(self.title_alert) table_alert.addWidget(self.table_alert) self.title_invoice = FBoxTitle(u"Les stocks actual") self.table_invoice = InvoiceTableWidget(parent=self) table_invoice.addWidget(self.search_field) table_invoice.addWidget(self.table_invoice) self.table_mouvement = GReportTableWidget(parent=self) self.title_mouvement = FBoxTitle( show_date(self.table_mouvement.today, time=False)) # table_invoice.addWidget(self.title_invoice) # table_mouvement.addWidget(self.title_mouvement) table_mouvement.addWidget(self.table_mouvement) tab_widget = tabbox((table_mouvement, u"Les Mouvements"), (table_invoice, u"Les Factures"), (table_alert, u"Alertes sur les produits ")) vbox.addWidget(self.title) vbox.addWidget(tab_widget) self.setLayout(vbox)
def __init__(self, table_group, parent, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) self.parent = table_group group_id = self.parent.table_group.group.group_id self.group = Group.select().where(Group.id == group_id).get() vbox = QVBoxLayout() vbox.addWidget(FBoxTitle( u"<h2>Envoi pour les ({0}) contactes du groupe <b>{1}</b></h2>".format(len(self.group.contacts), self.group.name))) # form transfer self.amount = LineEdit() self.amount.setFont(QFont("Arial", 15)) self.amount.setValidator(QIntValidator()) self.amount.setToolTip(u"Taper le montant du transfert") self.amount_error = ErrorLabel(u"") self.password_field = EnterTabbedLineEdit() self.password_field.setEchoMode(LineEdit.Password) self.password_field.setToolTip(u"Taper le code orange money") self.send_butt = Button(u"Envoyer") self.send_butt.clicked.connect(self.sender) cancel_but = Button(u"Annuler") cancel_but.clicked.connect(self.cancel) formbox = QGridLayout() formbox.addWidget(FLabel(u"Montant: "), 0, 0) formbox.addWidget(self.amount, 0, 1) formbox.addWidget(FLabel(u"Code: "), 1, 0) formbox.addWidget(self.password_field, 1, 1) formbox.addWidget(self.send_butt, 2, 1) formbox.addWidget(cancel_but, 2, 0) self.isvalid() vbox.addLayout(formbox) self.setLayout(vbox)
def __init__(self, table_p, parent, scoop=None, member=None, *args, **kwargs): FWidget.__init__(self, parent, *args, **kwargs) self.table_p = table_p self.member = member self.scoop = scoop self.parent = parent full_name = "" self.ddn_field = FormatDate(QDate(QDate.currentDate())) addres = "" nationality = "" phone = "" if self.member: self.new = False full_name = self.member.full_name mddn = self.member.ddn if mddn: day, month, year = mddn.split("/") ddn = datetime.strptime(mddn, '%d/%m/%Y') self.ddn_field.setDate(QDate(ddn)) addres = self.member.addres nationality = self.member.nationality phone = str(self.member.phone or "") self.title = u"Modification de {}".format(self.member) self.succes_msg = u"{} a été bien mise à jour".format(self.member) else: self.new = True self.succes_msg = u"Client a été bien enregistré" self.title = u"Ajout nouveau membre" self.member = CooperativeMember() self.setWindowTitle(self.title) vbox = QVBoxLayout() # vbox.addWidget(FPageTitle(u"Utilisateur: %s " % self.member.name)) self.full_name_field = LineEdit(full_name) self.sex_list = CooperativeMember.SEX.items() # Combobox widget self.sex_box = QComboBox() for index, value in enumerate(self.sex_list): # form = self.sex_list[index] self.sex_box.addItem("{}".format(value[1].upper()), value[0]) if self.member.sex == value[0]: self.sex_box.setCurrentIndex(index) # print("DE", ddn) # self.ddn_field.setDate(ddn) # self.ddn_field = QDateEdit(QDate(ddn)) self.addres_field = QTextEdit(addres) self.nationality_field = LineEdit(nationality) self.phone_field = IntLineEdit(phone) self.phone_field.setInputMask("## ## ## ##") self.poste_list = get_postes() self.poste_box = QComboBox() for index, value in enumerate(self.poste_list): self.poste_box.addItem( "{}".format(self.poste_list.get(value).upper()), value) if self.member.poste == value: print(value) self.poste_box.setCurrentIndex(index) formbox = QFormLayout() formbox.addRow(FormLabel(u"Nom complet : *"), self.full_name_field) formbox.addRow(FormLabel(u"Sexe *:"), self.sex_box) formbox.addRow(FormLabel(u"Date de naissance *:"), self.ddn_field) formbox.addRow(FormLabel(u"Poste occupé *:"), self.poste_box) formbox.addRow(FormLabel(u"Nationalité *:"), self.nationality_field) formbox.addRow(FormLabel(u"Téléphone :"), self.phone_field) formbox.addRow(FormLabel(u"Adresse :"), self.addres_field) butt = Button(u"Enregistrer") butt.clicked.connect(self.save_edit) formbox.addRow("", butt) vbox.addLayout(formbox) self.setLayout(vbox)
class InvoiceViewWidget(FWidget): def __init__(self, product="", parent=0, *args, **kwargs): super(InvoiceViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parentWidget().setWindowTitle( Config.APP_NAME + u" Ventes") self.parent = parent vbox = QVBoxLayout(self) # hbox = QHBoxLayout(self) editbox = QGridLayout(self) try: next_number = int( Invoice.select().order_by(Invoice.number.desc()).get().number) + 1 except: next_number = 1 self.num_invoice = IntLineEdit(str(next_number)) self.num_invoice.setToolTip(u"Le numéro") self.num_invoice.setMaximumSize( 40, self.num_invoice.maximumSize().height()) self.invoice_date = FormatDate(QDate.currentDate()) # self.name_client_field = LineEdit() self.string_list = [""] + ["{},{}".format(clt.name, clt.phone) for clt in ProviderOrClient.select().where( ProviderOrClient.type_ == ProviderOrClient.CLT).order_by(ProviderOrClient.name.desc())] # self.name_client_field_new = "" self.name_client_field = ExtendedComboBox() self.name_client_field.addItems(self.string_list) self.name_client_field.setMaximumSize( 200, self.name_client_field.maximumSize().height()) self.name_client_field.setToolTip("Nom, numero du client") self.add_clt_btt = BttSmall(u"+") self.add_clt_btt.clicked.connect(self.add_clt) self.add_clt_btt.setFixedWidth(50) # Combobox widget for add store self.liste_type_invoice = [Invoice.TYPE_FACT, Invoice.TYPE_BON] self.box_type_inv = QComboBox() for index in range(0, len(self.liste_type_invoice)): op = self.liste_type_invoice[index] sentence = u"%(name)s" % {'name': op} self.box_type_inv.addItem(sentence, op) self.search_field = LineEdit() self.search_field.setPlaceholderText("Rechercher un article") self.search_field.textChanged.connect(self.finder) # self.search_field.setFixedWidth(250) self.table_invoice = InvoiceTableWidget(parent=self) self.table_resultat = ResultatTableWidget(parent=self) self.table_info = InfoTableWidget(parent=self) self.table_resultat.refresh_("") editbox.addWidget(self.box_type_inv, 0, 2) editbox.addWidget(self.num_invoice, 0, 3) editbox.addWidget(FLabel(u"Doit :"), 1, 2) editbox.addWidget(self.name_client_field, 1, 3) # editbox.addWidget(self.add_clt_btt, 1, 4) editbox.addWidget(self.invoice_date, 0, 6) editbox.setColumnStretch(0, 1) editbox.setColumnStretch(5, 1) splitter = QSplitter(Qt.Horizontal) splitter_left = QSplitter(Qt.Vertical) splitter_left.addWidget(self.search_field) splitter_left.addWidget(self.table_resultat) # splitter_down.resize(15, 20) splitter_down = QSplitter(Qt.Vertical) splitter_down.addWidget(self.table_info) splitter_rigth = QSplitter(Qt.Vertical) # splitter_rigth.setLayout(editbox) splitter_rigth.addWidget(self.table_invoice) splitter_rigth.resize(800, 900) splitter_left.addWidget(splitter_down) splitter.addWidget(splitter_left) splitter.addWidget(splitter_rigth) vbox.addLayout(editbox) vbox.addWidget(splitter) self.setLayout(vbox) def add_clt(self): from GCommon.ui.provider_client_edit_add import EditOrAddClientOrProviderDialog self.open_dialog(EditOrAddClientOrProviderDialog, modal=True, prov_clt=None, table_p=self) def finder(self): search_term = self.search_field.text() value = unicode(search_term) self.table_resultat.refresh_(value) def is_valide(self): print("is_valide") try: self.name_client, self.phone = self.name_client_field.lineEdit().text().split( ",") except Exception as e: # print(e) field_error( self.name_client_field, "Nom, numéro de téléphone du client") return False return True def save_b(self): ''' add operation ''' # entete de la facture print("save") if not self.is_valide(): return invoice_date = unicode(self.invoice_date.text()) num_invoice = int(self.num_invoice.text()) invoice_type = self.liste_type_invoice[ self.box_type_inv.currentIndex()] lis_error = [] invoice = Invoice() try: self.owner = Owner.get(Owner.islog == True) except: lis_error.append("Aucun utilisateur est connecté <br/>") paid_amount = int(self.table_invoice.paid_amount_field.text()) try: clt = ProviderOrClient.get_or_create( self.name_client, int(self.phone.replace(" ", "")), ProviderOrClient.CLT) except ValueError: field_error( self.name_client_field, "Nom, numéro de téléphone du client") invoice.number = num_invoice invoice.owner = self.owner invoice.client = clt invoice.location = "Bamako" invoice.type_ = invoice_type invoice.subject = "" invoice.paid_amount = paid_amount invoice.tax = False try: invoice.save() if int(paid_amount) != 0 or invoice_type == Invoice.TYPE_BON: Refund(type_=Refund.DT, owner=self.owner, amount=paid_amount, date=date_to_datetime(invoice_date), provider_client=clt, invoice=Invoice.get(number=num_invoice)).save() except Exception as e: invoice.deletes_data() lis_error.append( "Erreur sur l'enregistrement d'entête de facture<br/>") return False # Save invoiceitems invoice = Invoice.get(Invoice.number == num_invoice) for name, qty, price in self.table_invoice.get_table_items(): rep = Report() product = Product.get(Product.name == name) rep.store = 1 rep.product = product rep.invoice = invoice rep.type_ = Report.S rep.cost_buying = int(product.last_report.cost_buying) rep.date = date_to_datetime(invoice_date) rep.qty = int(qty) rep.selling_price = int(price) try: rep.save() except Exception as e: lis_error.append(e) if lis_error != []: invoice.delete_instance() self.parent.Notify(lis_error, "error") return False else: self.parent.Notify("Facture Enregistrée avec succès", "success") self.change_main_context(ShowInvoiceViewWidget, invoice_num=invoice.number)
class MemberManagerWidget(FWidget, FPeriodHolder): def __init__(self, parent=0, dmd=None, *args, **kwargs): super(MemberManagerWidget, self).__init__( parent=parent, *args, **kwargs) FPeriodHolder.__init__(self, *args, **kwargs) self.parent = parent self.dmd = dmd self.search_field = LineEdit() self.search_field.setPlaceholderText("Rechercher un membre") # self.search_field.setMaximumWidth(400) self.search_field.setMaximumSize(900, 100) self.search_field.textChanged.connect(self.finder) self.string_list = [] self.title_field = FPageTitle( "Gestion des membres de la {}".format(self.dmd.scoop)) self.end_demande_btt = Button("Fin de l'ajout") self.end_demande_btt.setMaximumWidth(400) self.end_demande_btt.clicked.connect(self.goto_immatriculation) if self.dmd.scoop.membres().count() < 4: self.end_demande_btt.setEnabled(False) self.new_demande_btt = Button("Nouveau Membre") self.new_demande_btt.setMaximumWidth(400) self.new_demande_btt.setIcon(QIcon.fromTheme('save', QIcon( u"{}add.png".format(Config.img_media)))) self.new_demande_btt.clicked.connect(self.add_member) self.table = MemberTableWidget(parent=self) editbox = QGridLayout() editbox.addWidget(self.search_field, 1, 0) editbox.setColumnStretch(1, 1) editbox.addWidget(self.new_demande_btt, 1, 3) editbox.addWidget(self.end_demande_btt, 1, 4) vbox = QVBoxLayout() vbox.addWidget(self.title_field) vbox.addLayout(editbox) vbox.addWidget(self.table) self.setLayout(vbox) # def end_add_member(self): # self.dmd.status = self.dmd.CHECKLIST # self.dmd.save_() # from ui.check_list_view import CheckListViewWidget # self.change_main_context(CheckListViewWidget, dmd=self.dmd) def goto_immatriculation(self): # self.dmd.status = self.dmd.CHECKLIST self.dmd.status = self.dmd.IMMATRICULAITON self.dmd.save_() from ui.immatriculation import ImmatriculationSCoopViewWidget self.change_main_context( ImmatriculationSCoopViewWidget, dmd=self.dmd) def add_member(self): self.open_dialog( EditOrAddMemberDialog, modal=True, scoop=self.dmd.scoop, table_p=self.table) def finder(self): self.search = self.search_field.text() self.table.refresh_() def refresh_b(self): if self.dmd.scoop.membres().count() >= 3: self.end_demande_btt.setEnabled(True)
class EditOrAddMemberDialog(QDialog, FWidget): def __init__(self, table_p, parent, scoop=None, member=None, *args, **kwargs): FWidget.__init__(self, parent, *args, **kwargs) self.table_p = table_p self.member = member self.scoop = scoop self.parent = parent full_name = "" self.ddn_field = FormatDate(QDate(QDate.currentDate())) addres = "" nationality = "" phone = "" if self.member: self.new = False full_name = self.member.full_name mddn = self.member.ddn if mddn: day, month, year = mddn.split("/") ddn = datetime.strptime(mddn, '%d/%m/%Y') self.ddn_field.setDate(QDate(ddn)) addres = self.member.addres nationality = self.member.nationality phone = str(self.member.phone or "") self.title = u"Modification de {}".format(self.member) self.succes_msg = u"{} a été bien mise à jour".format(self.member) else: self.new = True self.succes_msg = u"Client a été bien enregistré" self.title = u"Ajout nouveau membre" self.member = CooperativeMember() self.setWindowTitle(self.title) vbox = QVBoxLayout() # vbox.addWidget(FPageTitle(u"Utilisateur: %s " % self.member.name)) self.full_name_field = LineEdit(full_name) self.sex_list = CooperativeMember.SEX.items() # Combobox widget self.sex_box = QComboBox() for index, value in enumerate(self.sex_list): # form = self.sex_list[index] self.sex_box.addItem("{}".format(value[1].upper()), value[0]) if self.member.sex == value[0]: self.sex_box.setCurrentIndex(index) # print("DE", ddn) # self.ddn_field.setDate(ddn) # self.ddn_field = QDateEdit(QDate(ddn)) self.addres_field = QTextEdit(addres) self.nationality_field = LineEdit(nationality) self.phone_field = IntLineEdit(phone) self.phone_field.setInputMask("## ## ## ##") self.poste_list = get_postes() self.poste_box = QComboBox() for index, value in enumerate(self.poste_list): self.poste_box.addItem( "{}".format(self.poste_list.get(value).upper()), value) if self.member.poste == value: print(value) self.poste_box.setCurrentIndex(index) formbox = QFormLayout() formbox.addRow(FormLabel(u"Nom complet : *"), self.full_name_field) formbox.addRow(FormLabel(u"Sexe *:"), self.sex_box) formbox.addRow(FormLabel(u"Date de naissance *:"), self.ddn_field) formbox.addRow(FormLabel(u"Poste occupé *:"), self.poste_box) formbox.addRow(FormLabel(u"Nationalité *:"), self.nationality_field) formbox.addRow(FormLabel(u"Téléphone :"), self.phone_field) formbox.addRow(FormLabel(u"Adresse :"), self.addres_field) butt = Button(u"Enregistrer") butt.clicked.connect(self.save_edit) formbox.addRow("", butt) vbox.addLayout(formbox) self.setLayout(vbox) def is_valide(self): if check_is_empty(self.full_name_field): return False if check_is_empty(self.ddn_field): return False if check_is_empty(self.nationality_field): return False if check_is_empty(self.phone_field): return False return True def save_edit(self): ''' add operation ''' if not self.is_valide(): return print("Save") self.member.scoop = self.scoop self.member.full_name = self.full_name_field.text() self.member.sex = self.sex_box.itemData(self.sex_box.currentIndex()) self.member.ddn = self.ddn_field.text() self.member.addres = self.addres_field.toPlainText() self.member.nationality = self.nationality_field.text() phone = self.phone_field.text() self.member.phone = is_int(phone) self.member.poste = self.poste_box.itemData( self.poste_box.currentIndex()) try: self.member.save_() self.close() self.table_p.refresh_() self.parent.Notify( u"Le membre {} ({}) a été mise à jour".format( self.member.full_name, self.member.poste), "success") except peewee.IntegrityError: field_error(self.full_name_field, "Ce nom existe dans la basse de donnée.")
def __init__(self, parent=0, *args, **kwargs): super(RegistrationViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parent = parent self.parentWidget().set_window_title("FORMULAIRE D’IMMATRICULATION") self.title = FLabel("<h3>FORMULAIRE D’IMMATRICULATION</h3>") self.office = Office.select().where(Office.id == 1).get() self.created_date_field = FormatDate(QDate.currentDate()) self.created_date_field.setMaximumWidth(130) # self.created_date_field.setInputMask('##/##/####') self.rue_field = IntLineEdit() self.porte_field = IntLineEdit() self.tel_field = IntLineEdit() self.tel_field.setInputMask('## ## ## ##') self.tel2_field = IntLineEdit() self.tel2_field.setInputMask('## ## ## ##') self.bp_field = IntLineEdit() self.email_field = LineEdit() self.denomination_field = LineEdit() self.commercial_name_field = LineEdit() self.declaration_date_field = FormatDate(QDate.currentDate()) self.declaration_date_field.setMaximumWidth(130) self.amount_capital_social_initial = FLabel() self.amount_part_social_field = IntLineEdit() self.apports_numeraire_field = IntLineEdit() self.apports_numeraire_field.textChanged.connect(self.cal_total) self.apports_nature_field = IntLineEdit() self.apports_nature_field.textChanged.connect(self.cal_total) self.apports_industrie_field = IntLineEdit() self.apports_industrie_field.textChanged.connect(self.cal_total) self.duree_statutaire_field = IntLineEdit() self.duree_statutaire_field.setMaximumWidth(80) self.spinneret_box = QComboBox() self.spinneret_box.setMaximumWidth(800) self.activites_box = QComboBox() self.activites_box.setMaximumWidth(800) self.activites_box.currentIndexChanged.connect(self.sp_change_select) self.activities_list = get_activities() for index, value in enumerate(self.activities_list): self.activites_box.addItem( "{}".format(self.activities_list.get(value).upper()), value) # if self.store and self.store.name == op.name: # self.box_store.setCurrentIndex(index) self.formes_box = QComboBox() self.formes_box.setMaximumWidth(800) self.formes_list = get_formes() for index, value in enumerate(self.formes_list): self.formes_box.addItem( "{}".format(self.formes_list.get(value).upper()), value) self.commune_list = entity_children(self.office.slug_cercle).items() self.commune_box = ExtendedComboBox() for index, value in enumerate(self.commune_list): self.commune_box.addItem("{}".format(value[1].upper()), value[0]) # self.commune_box.addItems(self.commune_list) self.commune_box.setToolTip("commune") self.commune_box.currentIndexChanged.connect(self.c_change_select) # self.vfq_list = self.get_vfq_list() self.vfq_box = ExtendedComboBox() self.vfq_list = self.get_vfq_list() for index, value in enumerate(self.vfq_list): self.vfq_box.addItem("{}".format(self.vfq_list.get(value).upper()), value) self.vfq_box.setToolTip("vfq") formbox = QFormLayout() formbox.addRow(FLabel(DATE_DEMANTE), self.declaration_date_field) formbox.addRow(FLabel("1. " + DENOMINATION_S_SC), self.denomination_field) formbox.addRow(FLabel("2. " + NOM_COMMERCIAL), self.commercial_name_field) formbox.addRow(FLabel("3. " + DATE_CREATION_SC), self.created_date_field) formbox.addRow(FLabel("4. " + ACTIVITES_E), self.activites_box) formbox.addRow(FLabel("5. " + FILIERE), self.spinneret_box) formbox.addRow(FLabel("6. " + FORME_SC), self.formes_box) # Capital Social Initial capital_formbox = QFormLayout() capital_formbox.addRow(FLabel("7.1. " + MONTANT_PART_S), self.amount_part_social_field) capital_formbox.addRow(FLabel("7.2. " + MONTANT_APPORTS_NUM), self.apports_numeraire_field) capital_formbox.addRow(FLabel("7.3. " + MONTANT_APPORTS_NAT), self.apports_nature_field) capital_formbox.addRow(FLabel("7.4. " + MONTANT_APPORTS_INDU), self.apports_industrie_field) self.capitalSGroupBox = QGroupBox("7. " + MONTANT_CAPITAL_SI) self.capitalSGroupBox.setLayout(capital_formbox) self.capitalSGroupBox.setStyleSheet(CSS) # self.capitalSGroupBox.setMaximumWidth(1300) # Adresse du siège social self.vline = QFrame() self.vline.setFrameShape(QFrame.VLine) self.vline.setFrameShadow(QFrame.Sunken) self.addresGroupBox = QGroupBox("8. " + ADRESSE_SS) self.addresGroupBox.setStyleSheet(CSS) addres_gribox = QGridLayout() addres_gribox.addWidget(FRLabel(CERCLE), 0, 0) addres_gribox.addWidget(FLabel(self.office.cercle_name()), 0, 1) addres_gribox.addWidget(FRLabel(COMMUNE), 1, 0) addres_gribox.addWidget(self.commune_box, 1, 1) # addres_gribox.addWidget(self.vline, 0, 3, 2, 5) addres_gribox.addWidget(FRLabel(VFQ), 2, 0) addres_gribox.addWidget(self.vfq_box, 2, 1) addres_gribox.addWidget(FRLabel(RUE), 0, 2) addres_gribox.addWidget(self.rue_field, 0, 3) addres_gribox.addWidget(FRLabel(PORTE), 1, 2) addres_gribox.addWidget(self.porte_field, 1, 3) addres_gribox.addWidget(FRLabel(BP), 0, 4) addres_gribox.addWidget(self.bp_field, 0, 5) addres_gribox.addWidget(FRLabel(EMAIL), 1, 4) addres_gribox.addWidget(self.email_field, 1, 5) addres_gribox.addWidget(FRLabel(TEL), 2, 2) addres_gribox.addWidget(self.tel_field, 2, 3) addres_gribox.addWidget(FRLabel(TEL2), 2, 4) addres_gribox.addWidget(self.tel2_field, 2, 5) # addres_gribox.setColumnStretch(6, 5) self.addresGroupBox.setLayout(addres_gribox) # self.addresGroupBox.setMaximumWidth(1300) # Durée statutaire de la société coopérative duree_fbox = QFormLayout() duree_fbox.addRow(FLabel("9. " + DUREE_STATUTAIRE_SC), self.duree_statutaire_field) butt = Button_save(SAVE) butt.clicked.connect(self.save_and_goto_manager) butt_and_continous = Button_save(SAVE_AND_CONTINNUES) butt_and_continous.clicked.connect(self.save_and_goto_add_member) butt_and_continous.setMaximumWidth(300) duree_fbox.addRow(FLabel(""), FLabel("")) duree_fbox.addRow(butt, butt_and_continous) vbox = QVBoxLayout() vbox.addLayout(formbox) vbox.addWidget(self.capitalSGroupBox) vbox.addWidget(self.addresGroupBox) vbox.addLayout(duree_fbox) self.setLayout(vbox)
class ContactNewViewWidget(QDialog, FWidget): def __init__(self, parent, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) vbox = QVBoxLayout() vbox.addWidget(FBoxTitle(u"<h3>Ajout de contact </h3>")) self.combo_grp = QComboBox() groups = Group() groups.name = "Aucun" self.list_grp = Group.all() self.list_grp.append(groups) self.list_grp.reverse() for index in self.list_grp: sentence = u"%(name)s" % {'name': index.name} self.combo_grp.addItem(sentence) self.full_name = LineEdit() self.msg_e_or_c = FLabel("") self.full_name.setFont(QFont("Arial", 16)) self.phone_number = IntLineEdit() self.phone_number.setInputMask("D9.99.99.99") self.phone_number.setAlignment(Qt.AlignCenter) self.phone_number.setFont(QFont("Arial", 16)) send_butt = Button(u"Enregistrer") send_butt.clicked.connect(self.save_form) cancel_but = Button(u"Fermer") cancel_but.clicked.connect(self.cancel) formbox = QGridLayout() formbox.addWidget(FLabel(u"Groupes:"), 0, 0) formbox.addWidget(self.combo_grp, 1, 0) formbox.addWidget(FLabel(u"Nom complèt: "), 0, 1) formbox.addWidget(self.full_name, 1, 1) formbox.addWidget(FLabel(u"Numéro: "), 0, 2) formbox.addWidget(self.phone_number, 1, 2) formbox.addWidget(send_butt, 2, 1) formbox.addWidget(cancel_but, 2, 0) formbox.addWidget(self.msg_e_or_c, 3, 0, 3, 2) vbox.addLayout(formbox) self.setLayout(vbox) def cancel(self): self.close() def iscomplet(self): self.phone_number.setStyleSheet("") self.msg_e_or_c.setText("") self.msg_e_or_c.setStyleSheet("") try: int(self.phone_number.text().replace('.', '')) except: self.phone_number.setStyleSheet("border-bottom: 3px solid red;" "background-color:#AFAFAF;") self.phone_number.setToolTip(u"Ce champ est obligatoire.") return False return True def save_form(self): if not self.iscomplet(): return full_name = unicode(self.full_name.text()) phone_number = int(self.phone_number.text().replace('.', '')) try: Contact(number=phone_number, name=full_name).save() except: self.msg_e_or_c.setText(u"Ce numéro existe déjà") self.msg_e_or_c.setStyleSheet("color: red") return grp = unicode(self.list_grp[self.combo_grp.currentIndex()]) if not grp == "Aucun": grp = Group.select().where(Group.name == grp).get() contact = Contact.select().where(Contact.number == phone_number).get() ContactGroup(group=grp.id, contact=contact).save() self.full_name.setText("") self.phone_number.setText("") self.msg_e_or_c.setText(u"Le numéro (<b>{}</b>) à éte bien enregistré" .format(phone_number))
class HomeViewWidget(FWidget): """ Shows the home page """ def __init__(self, parent=0, *args, **kwargs): super(HomeViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parent = parent self.parentWidget().setWindowTitle(u"Bienvenu sur transfert Wari") self.title = FPageTitle(u"Tranfert") vbox = QVBoxLayout(self) vbox.addWidget(self.title) self.sttg = SettingsAdmin().select().where(SettingsAdmin.id == 1).get() if self.sttg.can_use: self.createHomeGroupBox() vbox.addWidget(self.homegbox) else: self.activationGroupBox() vbox.addWidget(self.topLeftGroupBoxBtt) self.setLayout(vbox) def createHomeGroupBox(self): self.homegbox = QGroupBox() self.table = OperationTableWidget(parent=self) table_box = QVBoxLayout() self.title_table = FPageTitle(u"Historique des transferts") table_box.addWidget(self.title_table) table_box.addWidget(self.table) # form transfer self.number = LineEdit() self.number.setInputMask("D9.99.99.99") self.number.setAlignment(Qt.AlignCenter) self.number.setFont(QFont("Arial", 17)) self.number.setToolTip(u"""Taper le nom ou le numéro de téléphone du beneficiare""") self.amount = LineEdit() self.amount.setFont(QFont("Arial", 15)) self.amount.setValidator(QIntValidator()) self.amount.setToolTip(u"Taper le montant du transfert") self.password_field = EnterTabbedLineEdit() self.password_field.setFont(QFont("Arial", 15)) self.password_field.setEchoMode(LineEdit.Password) self.password_field.setToolTip(u"Taper le code orange money") self.msg_field = FLabel("") butt = Button(u"Envoyer") butt.clicked.connect(self.get_or_creat_nbr) formbox = QGridLayout() formbox.addWidget(FLabel(u"Numéro"), 0, 0) formbox.addWidget(self.number, 1, 0) formbox.addWidget(FLabel(u"Montant"), 0, 1) formbox.addWidget(self.amount, 1, 1) formbox.addWidget(FLabel(u"code"), 0, 2) formbox.addWidget(self.password_field, 1, 2) formbox.addWidget(self.msg_field, 0, 5) formbox.addWidget(butt, 1, 4) formbox.setColumnStretch(5, 3) transfer_box = QVBoxLayout() # formbox.setSizeConstraint(QLayout.SetFixedSize) transfer_box.addWidget(self.title) transfer_box.addLayout(formbox) transfer_box.addLayout(table_box) # self.setLayout(transfer_box) self.homegbox.setLayout(transfer_box) def activationGroupBox(self): self.topLeftGroupBoxBtt = QGroupBox(self.tr("Nouvelle license")) self.setWindowTitle(u"License") self.parentWidget().setWindowTitle(u"Activation de la license") self.code_field = PyTextViewer(u"""Vous avez besoin du code ci desous pour l'activation:<hr> <b>{code}</b><hr> <h4>Contacts:</h4>{contact}""" .format(code=SettingsAdmin().select().get().clean_mac, contact=Constants.TEL_AUT)) self.name_field = LineEdit() self.license_field = QTextEdit() self.pixmap = QPixmap("") self.image = FLabel(self) self.image.setPixmap(self.pixmap) butt = Button_save(u"Enregistrer") butt.clicked.connect(self.add_lience) editbox = QGridLayout() editbox.addWidget(FLabel(u"Nom: "), 0, 0) editbox.addWidget(self.name_field, 0, 1) editbox.addWidget(FLabel(u"License: "), 1, 0) editbox.addWidget(self.license_field, 1, 1) editbox.addWidget(self.code_field, 1, 2) editbox.addWidget(self.image, 5, 1) editbox.addWidget(butt, 6, 1) self.topLeftGroupBoxBtt.setLayout(editbox) def get_or_creat_nbr(self): ''' add operation ''' if not self.is_complete(): return number = unicode(self.number.text().replace('.', '')) amount = unicode(self.amount.text()) Contact.get_or_create(number) data = {"phone_num": [number, ], "amount": amount, "code": unicode(self.password_field.text())} # print(data) # multiple_sender(data) self.number.clear() self.amount.clear() self.password_field.clear() self.table.refresh_() self.msg_field.setText( u"Transfert vers ({}) a été effectué.".format(number)) self.msg_field.setStyleSheet("color: green") def is_complete(self): self.amount.setStyleSheet("") self.password_field.setStyleSheet("") if unicode(self.amount.text()) == "": self.amount.setStyleSheet("font-size:20px; color: red") self.amount.setText(u"Ce champ est obligatoire.") return False if unicode(self.password_field.text()) == "": self.password_field.setStyleSheet("font-size:20px; color: red") self.password_field.setText(u"Ce champ est obligatoire.") return False return True def check_license(self, license): self.flog = False if (SettingsAdmin().is_valide_mac(license)): self.pixmap = QPixmap(u"{}accept.png".format(Constants.img_cmedia)) self.image.setToolTip("License correct") self.flog = True else: self.pixmap = QPixmap( u"{}decline.png".format(Constants.img_cmedia)) self.image.setToolTip("License incorrect") self.image.setPixmap(self.pixmap) def add_lience(self): """ add User """ name = unicode(self.name_field.text()).strip() license = unicode(self.license_field.toPlainText()) self.check_license(license) if self.flog: sttg = self.sttg sttg.user = name sttg.license = license sttg.save() raise_success(u"Confirmation", u"""La license (<b>{}</b>) à éte bien enregistré pour cette machine.\n Elle doit être bien gardé""".format(license)) self.goto_archi()
class ContactGroupViewWidget(QDialog, FWidget): def __init__(self, table_group, parent, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) self.parent = table_group group_id = self.parent.table_group.group.group_id self.group = Group.select().where(Group.id == group_id).get() vbox = QVBoxLayout() vbox.addWidget(FBoxTitle( u"<h3>Groupe: {}</h3>".format(self.group.name))) self.order_number = LineEdit() # form transfer self.amount = LineEdit() self.amount.setFont(QFont("Arial", 15)) self.amount.setValidator(QIntValidator()) self.amount.setToolTip(u"Taper le montant du transfert") # self.solde = FLabel(get_solde()) self.amount_error = ErrorLabel(u"") send_butt = Button(u"Envoyer") send_butt.clicked.connect(self.sender) cancel_but = Button(u"Annuler") cancel_but.clicked.connect(self.cancel) formbox = QGridLayout() formbox.addWidget(FLabel(u"Montant: "), 0, 0) formbox.addWidget(self.amount, 0, 1) formbox.addWidget(send_butt, 2, 1) formbox.addWidget(cancel_but, 2, 0) vbox.addLayout(formbox) self.setLayout(vbox) def cancel(self): self.close() def isvalid(self): if unicode(self.amount.text()) == "": return False def iscomplet(self): self.amount.setStyleSheet("") self.amount.setText(u"") if unicode(self.amount.text()) == "": self.amount.setStyleSheet("font-size:20px; color: red") self.amount.setText(u"Ce champ est obligatoire.") return False def sender(self): if self.iscomplet: return list_phone_num = [(i.contact.number) for i in ContactGroup.filter(group__id=self.group.id)] data = {"phone_num": list_phone_num, "code": "03944", "amount": unicode(self.amount.text()) } print data # multiple_sender(data) self.cancel() self.parent.table_group.refresh_()
class NewOrEditOrganizationViewWidget(QDialog, FWidget): def __init__(self, pp=None, owner=None, parent=None, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) self.setWindowTitle(u"Nouvel Organisation") self.parent = parent self.pp = pp self.owner = owner vbox = QVBoxLayout() self.organization_group_box() vbox.addWidget(self.organGroupBoxBtt) self.setLayout(vbox) def organization_group_box(self): self.organGroupBoxBtt = QGroupBox(self.tr("Nouvelle Organisation")) self.liste_devise = Organization.DEVISE # Combobox widget self.box_devise = QComboBox() for index in self.liste_devise: self.box_devise.addItem("{} {}".format( self.liste_devise[index], index)) self.checked = QCheckBox("Active") self.checked.setChecked(True) self.checked.setToolTip(u"""Cocher si vous voulez pour deactive le login continue à utiliser le systeme""") self.name_orga = LineEdit() self.phone = IntLineEdit() self.bp = LineEdit() self.adress_org = QTextEdit() self.email_org = LineEdit() formbox = QFormLayout() formbox.addRow(FormLabel(u"Nom de l'organisation *"), self.name_orga) formbox.addRow(FormLabel(u"Tel *"), self.phone) formbox.addRow( FormLabel(u"Activer la saisie de mot de passe"), self.checked) formbox.addRow(FormLabel(u"Devise"), self.box_devise) formbox.addRow(FormLabel(u"B.P"), self.bp) formbox.addRow(FormLabel(u"E-mail:"), self.email_org) formbox.addRow(FormLabel(u"Adresse complete:"), self.adress_org) butt = Button_save(u"Enregistrer") butt.clicked.connect(self.save_edit) formbox.addRow("", butt) self.organGroupBoxBtt.setLayout(formbox) def save_edit(self): ''' add operation ''' if check_is_empty(self.name_orga): return if check_is_empty(self.phone): return name_orga = str(self.name_orga.text()) device = str(self.box_devise.currentText().split()[1]) bp = str(self.bp.text()) email_org = str(self.email_org.text()) phone = str(self.phone.text()) adress_org = str(self.adress_org.toPlainText()) org = Organization() org.phone = phone org.device = device org.name_orga = name_orga org.email_org = email_org org.bp = bp org.adress_org = adress_org org.is_login = True if self.checked.checkState( ) == Qt.Checked else False org.save() self.accept()
class OrganizationTableWidget(FWidget): def __init__(self, parent, *args, **kwargs): super(FWidget, self).__init__(parent=parent, *args, **kwargs) self.organization = Organization().get(id=1) print(self.organization) self.parent = parent vbox = QVBoxLayout() # vbox.addWidget(FPageTitle(u"Utilisateur: %s " % # self.organisation.name_orga)) self.liste_devise = Organization.DEVISE # Combobox widget self.box_devise = QComboBox() for index, value in enumerate(self.liste_devise): self.box_devise.addItem( "{} {}".format(self.liste_devise[value], value)) if self.organization.devise == value: self.box_devise.setCurrentIndex(index) self.checked = QCheckBox("Active") if self.organization.is_login: self.checked.setCheckState(Qt.Checked) self.checked.setToolTip(u"""Cocher si vous voulez pour deactive le login continue à utiliser le systeme""") self.name_orga = LineEdit(self.organization.name_orga) self.phone = IntLineEdit(str(self.organization.phone)) self.bp = LineEdit(self.organization.bp) self.adress_org = QTextEdit(self.organization.adress_org) self.email_org = LineEdit(self.organization.email_org) formbox = QFormLayout() formbox.addRow(FormLabel(u"Nom de l'organisation:"), self.name_orga) formbox.addRow(FormLabel(u"Tel:"), self.phone) formbox.addRow(FormLabel(u"Activer le login"), self.checked) formbox.addRow(FormLabel(u"Devise :"), self.box_devise) formbox.addRow(FormLabel(u"B.P:"), self.bp) formbox.addRow(FormLabel(u"E-mail:"), self.email_org) formbox.addRow(FormLabel(u"Adresse complete:"), self.adress_org) butt = Button_save(u"Enregistrer") butt.clicked.connect(self.save_edit) formbox.addRow("", butt) vbox.addLayout(formbox) self.setLayout(vbox) def save_edit(self): ''' add operation ''' name_orga = unicode(self.name_orga.text()) if check_is_empty(self.name_orga): return if check_is_empty(self.phone): return orga = Organization().get(id=1) orga.name_orga = name_orga orga.phone = unicode(self.phone.text()) orga.is_login = True if self.checked.checkState() == Qt.Checked else False orga.devise = str(self.box_devise.currentText().split()[1]) orga.email_org = unicode(self.email_org.text()) orga.bp = unicode(self.bp.text()) orga.adress_org = unicode(self.adress_org.toPlainText()) orga.save() print(orga.is_login) self.parent.parent.Notify(u"Le Compte %s a été mise à jour" % orga.name_orga, "success")
class SendGroupViewWidget(QDialog, FWidget): def __init__(self, table_group, parent, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) self.parent = table_group group_id = self.parent.table_group.group.group_id self.group = Group.select().where(Group.id == group_id).get() vbox = QVBoxLayout() vbox.addWidget( FBoxTitle( u"<h2>Envoi pour les ({0}) contactes du groupe <b>{1}</b></h2>" .format(len(self.group.contacts), self.group.name))) # form transfer self.amount = LineEdit() self.amount.setFont(QFont("Arial", 15)) self.amount.setValidator(QIntValidator()) self.amount.setToolTip(u"Taper le montant du transfert") self.amount_error = ErrorLabel(u"") self.password_field = EnterTabbedLineEdit() self.password_field.setEchoMode(LineEdit.Password) self.password_field.setToolTip(u"Taper le code orange money") self.send_butt = Button(u"Envoyer") self.send_butt.clicked.connect(self.sender) cancel_but = Button(u"Annuler") cancel_but.clicked.connect(self.cancel) formbox = QGridLayout() formbox.addWidget(FLabel(u"Montant: "), 0, 0) formbox.addWidget(self.amount, 0, 1) formbox.addWidget(FLabel(u"Code: "), 1, 0) formbox.addWidget(self.password_field, 1, 1) formbox.addWidget(self.send_butt, 2, 1) formbox.addWidget(cancel_but, 2, 0) self.isvalid() vbox.addLayout(formbox) self.setLayout(vbox) def cancel(self): self.close() def isvalid(self): self.list_phone_num = [ (i.contact.number) for i in ContactGroup.filter(group__id=self.group.id) ] if self.list_phone_num == []: self.send_butt.setEnabled(False) self.send_butt.setToolTip(u"""Ce groupe n'a pas le numéro de téléphone.""") def iscomplet(self): self.amount.setStyleSheet("") self.amount.setText(u"") self.password_field.setStyleSheet("") self.password_field.setText(u"") if unicode(self.amount.text()) == "": self.amount.setStyleSheet("font-size:20px; color: red") self.amount.setText(u"Ce champ est obligatoire.") return False if unicode(self.password_field.text()) == "": self.password_field.setStyleSheet("font-size:20px; color: red") self.password_field.setText(u"Ce champ est obligatoire.") return False return True def sender(self): if not self.iscomplet: return data = { "phone_num": self.list_phone_num, "code": unicode(self.password_field.text()), "amount": unicode(self.amount.text()) } multiple_sender(data) self.cancel() self.parent.table_group.refresh_()
class RegistrationViewWidget(FWidget): """ Shows the home page """ def __init__(self, parent=0, *args, **kwargs): super(RegistrationViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parent = parent self.parentWidget().set_window_title("FORMULAIRE D’IMMATRICULATION") self.title = FLabel("<h3>FORMULAIRE D’IMMATRICULATION</h3>") self.office = Office.select().where(Office.id == 1).get() self.created_date_field = FormatDate(QDate.currentDate()) self.created_date_field.setMaximumWidth(130) # self.created_date_field.setInputMask('##/##/####') self.rue_field = IntLineEdit() self.porte_field = IntLineEdit() self.tel_field = IntLineEdit() self.tel_field.setInputMask('## ## ## ##') self.tel2_field = IntLineEdit() self.tel2_field.setInputMask('## ## ## ##') self.bp_field = IntLineEdit() self.email_field = LineEdit() self.denomination_field = LineEdit() self.commercial_name_field = LineEdit() self.declaration_date_field = FormatDate(QDate.currentDate()) self.declaration_date_field.setMaximumWidth(130) self.amount_capital_social_initial = FLabel() self.amount_part_social_field = IntLineEdit() self.apports_numeraire_field = IntLineEdit() self.apports_numeraire_field.textChanged.connect(self.cal_total) self.apports_nature_field = IntLineEdit() self.apports_nature_field.textChanged.connect(self.cal_total) self.apports_industrie_field = IntLineEdit() self.apports_industrie_field.textChanged.connect(self.cal_total) self.duree_statutaire_field = IntLineEdit() self.duree_statutaire_field.setMaximumWidth(80) self.spinneret_box = QComboBox() self.spinneret_box.setMaximumWidth(800) self.activites_box = QComboBox() self.activites_box.setMaximumWidth(800) self.activites_box.currentIndexChanged.connect(self.sp_change_select) self.activities_list = get_activities() for index, value in enumerate(self.activities_list): self.activites_box.addItem( "{}".format(self.activities_list.get(value).upper()), value) # if self.store and self.store.name == op.name: # self.box_store.setCurrentIndex(index) self.formes_box = QComboBox() self.formes_box.setMaximumWidth(800) self.formes_list = get_formes() for index, value in enumerate(self.formes_list): self.formes_box.addItem( "{}".format(self.formes_list.get(value).upper()), value) self.commune_list = entity_children(self.office.slug_cercle).items() self.commune_box = ExtendedComboBox() for index, value in enumerate(self.commune_list): self.commune_box.addItem("{}".format(value[1].upper()), value[0]) # self.commune_box.addItems(self.commune_list) self.commune_box.setToolTip("commune") self.commune_box.currentIndexChanged.connect(self.c_change_select) # self.vfq_list = self.get_vfq_list() self.vfq_box = ExtendedComboBox() self.vfq_list = self.get_vfq_list() for index, value in enumerate(self.vfq_list): self.vfq_box.addItem("{}".format(self.vfq_list.get(value).upper()), value) self.vfq_box.setToolTip("vfq") formbox = QFormLayout() formbox.addRow(FLabel(DATE_DEMANTE), self.declaration_date_field) formbox.addRow(FLabel("1. " + DENOMINATION_S_SC), self.denomination_field) formbox.addRow(FLabel("2. " + NOM_COMMERCIAL), self.commercial_name_field) formbox.addRow(FLabel("3. " + DATE_CREATION_SC), self.created_date_field) formbox.addRow(FLabel("4. " + ACTIVITES_E), self.activites_box) formbox.addRow(FLabel("5. " + FILIERE), self.spinneret_box) formbox.addRow(FLabel("6. " + FORME_SC), self.formes_box) # Capital Social Initial capital_formbox = QFormLayout() capital_formbox.addRow(FLabel("7.1. " + MONTANT_PART_S), self.amount_part_social_field) capital_formbox.addRow(FLabel("7.2. " + MONTANT_APPORTS_NUM), self.apports_numeraire_field) capital_formbox.addRow(FLabel("7.3. " + MONTANT_APPORTS_NAT), self.apports_nature_field) capital_formbox.addRow(FLabel("7.4. " + MONTANT_APPORTS_INDU), self.apports_industrie_field) self.capitalSGroupBox = QGroupBox("7. " + MONTANT_CAPITAL_SI) self.capitalSGroupBox.setLayout(capital_formbox) self.capitalSGroupBox.setStyleSheet(CSS) # self.capitalSGroupBox.setMaximumWidth(1300) # Adresse du siège social self.vline = QFrame() self.vline.setFrameShape(QFrame.VLine) self.vline.setFrameShadow(QFrame.Sunken) self.addresGroupBox = QGroupBox("8. " + ADRESSE_SS) self.addresGroupBox.setStyleSheet(CSS) addres_gribox = QGridLayout() addres_gribox.addWidget(FRLabel(CERCLE), 0, 0) addres_gribox.addWidget(FLabel(self.office.cercle_name()), 0, 1) addres_gribox.addWidget(FRLabel(COMMUNE), 1, 0) addres_gribox.addWidget(self.commune_box, 1, 1) # addres_gribox.addWidget(self.vline, 0, 3, 2, 5) addres_gribox.addWidget(FRLabel(VFQ), 2, 0) addres_gribox.addWidget(self.vfq_box, 2, 1) addres_gribox.addWidget(FRLabel(RUE), 0, 2) addres_gribox.addWidget(self.rue_field, 0, 3) addres_gribox.addWidget(FRLabel(PORTE), 1, 2) addres_gribox.addWidget(self.porte_field, 1, 3) addres_gribox.addWidget(FRLabel(BP), 0, 4) addres_gribox.addWidget(self.bp_field, 0, 5) addres_gribox.addWidget(FRLabel(EMAIL), 1, 4) addres_gribox.addWidget(self.email_field, 1, 5) addres_gribox.addWidget(FRLabel(TEL), 2, 2) addres_gribox.addWidget(self.tel_field, 2, 3) addres_gribox.addWidget(FRLabel(TEL2), 2, 4) addres_gribox.addWidget(self.tel2_field, 2, 5) # addres_gribox.setColumnStretch(6, 5) self.addresGroupBox.setLayout(addres_gribox) # self.addresGroupBox.setMaximumWidth(1300) # Durée statutaire de la société coopérative duree_fbox = QFormLayout() duree_fbox.addRow(FLabel("9. " + DUREE_STATUTAIRE_SC), self.duree_statutaire_field) butt = Button_save(SAVE) butt.clicked.connect(self.save_and_goto_manager) butt_and_continous = Button_save(SAVE_AND_CONTINNUES) butt_and_continous.clicked.connect(self.save_and_goto_add_member) butt_and_continous.setMaximumWidth(300) duree_fbox.addRow(FLabel(""), FLabel("")) duree_fbox.addRow(butt, butt_and_continous) vbox = QVBoxLayout() vbox.addLayout(formbox) vbox.addWidget(self.capitalSGroupBox) vbox.addWidget(self.addresGroupBox) vbox.addLayout(duree_fbox) self.setLayout(vbox) def get_vfq_list(self): # c_dic = {} co_select = self.commune_box.itemData(self.commune_box.currentIndex()) return entity_children(co_select) def c_change_select(self): self.vfq_box.clear() self.vfq_list = self.get_vfq_list() for index, value in enumerate(self.vfq_list): self.vfq_box.addItem("{}".format(self.vfq_list.get(value).upper()), value) def get_spinneret_list(self): # c_dic = {} r_select = self.activites_box.itemData( self.activites_box.currentIndex()) return get_spinneret_activites(r_select) def sp_change_select(self): self.spinneret_box.clear() self.spinneret_list = self.get_spinneret_list() for index, value in enumerate(self.spinneret_list): self.spinneret_box.addItem( "{}".format(self.spinneret_list.get(value).upper()), value) def is_valide(self): if check_is_empty(self.denomination_field): return False if CooperativeCompanie.select().where( CooperativeCompanie.denomination == self.denomination_field.text()).exists(): field_error( self.denomination_field, "Cette dénomination existe déjà dans la base de données !") return False if check_is_empty(self.commercial_name_field): return False if check_is_empty(self.created_date_field): return False if check_is_empty(self.denomination_field): return False if check_is_empty(self.apports_numeraire_field): return False if check_is_empty(self.apports_nature_field): return False if check_is_empty(self.apports_industrie_field): return False # if check_is_empty(self.rue_field): # return False # if check_is_empty(self.porte_field): # return False # print(len(self.tel_field.text())) if len(self.tel_field.text()) != 11: field_error(self.tel_field, "Numéro requis") return False # if check_is_empty(self.bp_field): # return False # if check_is_empty(self.email_field): # return False if check_is_empty(self.duree_statutaire_field): return False # print(int(self.duree_statutaire_field.text())) if int(self.duree_statutaire_field.text()) > 99: field_error( self.duree_statutaire_field, "La durée statutaire ne peut être supérieure à 99 ans") return False return True def save(self): if not self.is_valide(): return self.scoop = CooperativeCompanie() self.scoop.office = self.office self.scoop.created_date = str(self.created_date_field.text()) self.scoop.denomination = str(self.denomination_field.text()) self.scoop.commercial_name = str(self.commercial_name_field.text()) self.scoop.activity = self.activites_box.itemData( self.activites_box.currentIndex()) self.scoop.spinneret = self.spinneret_box.itemData( self.spinneret_box.currentIndex()) self.scoop.forme = self.formes_box.itemData( self.formes_box.currentIndex()) self.scoop.amount_part_social = is_int( self.amount_part_social_field.text()) self.scoop.apports_numeraire = is_int( self.apports_numeraire_field.text()) self.scoop.apports_nature = is_int(self.apports_nature_field.text()) self.scoop.apports_industrie = is_int( self.apports_industrie_field.text()) self.scoop.region = self.office.slug_region self.scoop.cercle = self.office.slug_cercle self.scoop.commune = self.commune_box.itemData( self.commune_box.currentIndex()) self.scoop.vfq = self.vfq_box.itemData(self.vfq_box.currentIndex()) self.scoop.rue = is_int(self.rue_field.text()) self.scoop.porte = is_int(self.porte_field.text()) self.scoop.tel = is_int(self.tel_field.text()) self.scoop.tel2 = is_int(self.tel2_field.text()) self.scoop.bp = is_int(self.bp_field.text()) self.scoop.email = self.email_field.text() self.scoop.duree_statutaire = is_int( self.duree_statutaire_field.text()) self.scoop.save_() check_list = CheckList() check_list.save_() self.dmd = Demande() self.dmd.check_list = check_list self.dmd.declaration_date = str(self.declaration_date_field.text()) self.dmd.scoop = self.scoop self.dmd.status = self.dmd.ADDMEMBER self.dmd.save_() return True def save_and_goto_add_member(self): if self.save(): from ui.member_manager import MemberManagerWidget self.parent.change_context(MemberManagerWidget, dmd=self.dmd) def save_and_goto_manager(self): if self.save(): self.parent.change_context(ResgistrationManagerWidget) def cal_total(self): total = is_int(self.apports_numeraire_field.text() or 0) + is_int( self.apports_nature_field.text() or 0) + is_int( self.apports_industrie_field.text() or 0) self.capitalSGroupBox.setTitle("7. {} : {}".format( MONTANT_CAPITAL_SI, device_amount(total)))
class BuyViewWidget(FWidget): def __init__(self, parent=0, *args, **kwargs): super(BuyViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parentWidget().setWindowTitle( Config.APP_NAME + u" Arrivage d'article") self.parent = parent vbox = QVBoxLayout(self) hbox = QHBoxLayout(self) editbox = QGridLayout() self.date = FormatDate(QDate.currentDate()) self.name_client = LineEdit() self.search_field = LineEdit() self.search_field.setPlaceholderText("Rechercher un article") self.search_field.textChanged.connect(self.finder) # self.search_field.setFixedWidth(200) self.add_prod = Button(u"+ &Article") self.add_prod.clicked.connect(self.add_product) self.add_prod.setFixedWidth(80) # self.add_prod.setFixedHeight(20) self.add_prod.setStyleSheet("Text-align:botton") self.add_prod.setToolTip("Ajouter un nouvel article") self.table_buy = BuyTableWidget(parent=self) self.table_resultat = ResultatTableWidget(parent=self) self.table_info = InfoTableWidget(parent=self) editbox.addWidget(self.add_prod, 0, 1) editbox.addWidget(FormLabel(u"Date d'achat:"), 0, 4) editbox.addWidget(self.date, 0, 5) editbox.setColumnStretch(3, 3) splitter = QSplitter(Qt.Horizontal) splitter_left = QSplitter(Qt.Vertical) splitter_down = QSplitter(Qt.Vertical) splitter_left.addWidget(self.search_field) splitter_left.addWidget(self.table_resultat) splitter_down.resize(35, 20) splitter_down.addWidget(self.table_info) splitter_rigth = QSplitter(Qt.Vertical) splitter_rigth.addWidget(self.table_buy) splitter_rigth.resize(800, 900) splitter_left.addWidget(splitter_down) splitter.addWidget(splitter_left) splitter.addWidget(splitter_rigth) hbox.addWidget(splitter) vbox.addLayout(editbox) vbox.addLayout(hbox) self.setLayout(vbox) def add_product(self): """ """ self.open_dialog(EditOrAddProductsDialog, modal=True, product=None, table_p=self.table_resultat) def finder(self): search_term = str(self.search_field.text()) self.table_resultat.refresh_(search_term) def save_b(self): ''' add operation ''' # entete de la facture if not self.table_buy.isvalid: return False owner = Owner.get(Owner.islog == True) date = str(self.date.text()) values_t = self.table_buy.get_table_items() buy = Buy() # buy.date = datetime_ buy.provd_or_clt = \ ProviderOrClient.get_or_create( "Fournisseur", 000000, ProviderOrClient.FSEUR) buy.owner = owner try: buy.save() err = False except: raise raise_error( "Erreur", u"Impossible d'enregistrer l'entête de la facture") return False for name, qty, cost_buying, selling_price in values_t: rep = Report() rep.buy = buy rep.type_ = Report.E rep.store = 1 rep.date = date_to_datetime(date) rep.product = Product.get(name=name) rep.qty = int(qty) rep.cost_buying = int(cost_buying) rep.selling_price = int(selling_price) try: rep.save() except Exception as e: print(e) err = True if err: buy.delete_instance() raise_error("Erreur", u"Ce mouvement n'a pas pu etre " u"enregistré dans les rapports") return False else: self.parent.Notify(u"L'entrée des articles avec succès", "success") self.change_main_context(BuyShowViewWidget, buy=buy)
class HomeViewWidget(FWidget): """ Shows the home page """ def __init__(self, parent=0, *args, **kwargs): super(HomeViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parent = parent self.parentWidget().setWindowTitle(u"Bienvenu sur transfert Wari") self.title = FPageTitle(u"Tranfert") vbox = QVBoxLayout(self) vbox.addWidget(self.title) self.sttg = SettingsAdmin().select().where(SettingsAdmin.id == 1).get() if self.sttg.can_use: self.createHomeGroupBox() vbox.addWidget(self.homegbox) else: self.activationGroupBox() vbox.addWidget(self.topLeftGroupBoxBtt) self.setLayout(vbox) def createHomeGroupBox(self): self.homegbox = QGroupBox() self.table = OperationTableWidget(parent=self) table_box = QVBoxLayout() self.title_table = FPageTitle(u"Historique des transferts") table_box.addWidget(self.title_table) table_box.addWidget(self.table) # form transfer self.number = LineEdit() self.number.setInputMask("D9.99.99.99") self.number.setAlignment(Qt.AlignCenter) self.number.setFont(QFont("Arial", 17)) self.number.setToolTip(u"""Taper le nom ou le numéro de téléphone du beneficiare""") self.amount = LineEdit() self.amount.setFont(QFont("Arial", 15)) self.amount.setValidator(QIntValidator()) self.amount.setToolTip(u"Taper le montant du transfert") self.password_field = EnterTabbedLineEdit() self.password_field.setFont(QFont("Arial", 15)) self.password_field.setEchoMode(LineEdit.Password) self.password_field.setToolTip(u"Taper le code orange money") self.msg_field = FLabel("") butt = Button(u"Envoyer") butt.clicked.connect(self.get_or_creat_nbr) formbox = QGridLayout() formbox.addWidget(FLabel(u"Numéro"), 0, 0) formbox.addWidget(self.number, 1, 0) formbox.addWidget(FLabel(u"Montant"), 0, 1) formbox.addWidget(self.amount, 1, 1) formbox.addWidget(FLabel(u"code"), 0, 2) formbox.addWidget(self.password_field, 1, 2) formbox.addWidget(self.msg_field, 0, 5) formbox.addWidget(butt, 1, 4) formbox.setColumnStretch(5, 3) transfer_box = QVBoxLayout() # formbox.setSizeConstraint(QLayout.SetFixedSize) transfer_box.addWidget(self.title) transfer_box.addLayout(formbox) transfer_box.addLayout(table_box) # self.setLayout(transfer_box) self.homegbox.setLayout(transfer_box) def activationGroupBox(self): self.topLeftGroupBoxBtt = QGroupBox(self.tr("Nouvelle license")) self.setWindowTitle(u"License") self.parentWidget().setWindowTitle(u"Activation de la license") self.code_field = PyTextViewer( u"""Vous avez besoin du code ci desous pour l'activation:<hr> <b>{code}</b><hr> <h4>Contacts:</h4>{contact}""". format(code=SettingsAdmin().select().get().clean_mac, contact=Constants.TEL_AUT)) self.name_field = LineEdit() self.license_field = QTextEdit() self.pixmap = QPixmap("") self.image = FLabel(self) self.image.setPixmap(self.pixmap) butt = Button_save(u"Enregistrer") butt.clicked.connect(self.add_lience) editbox = QGridLayout() editbox.addWidget(FLabel(u"Nom: "), 0, 0) editbox.addWidget(self.name_field, 0, 1) editbox.addWidget(FLabel(u"License: "), 1, 0) editbox.addWidget(self.license_field, 1, 1) editbox.addWidget(self.code_field, 1, 2) editbox.addWidget(self.image, 5, 1) editbox.addWidget(butt, 6, 1) self.topLeftGroupBoxBtt.setLayout(editbox) def get_or_creat_nbr(self): ''' add operation ''' if not self.is_complete(): return number = unicode(self.number.text().replace('.', '')) amount = unicode(self.amount.text()) Contact.get_or_create(number) data = { "phone_num": [ number, ], "amount": amount, "code": unicode(self.password_field.text()) } # print(data) # multiple_sender(data) self.number.clear() self.amount.clear() self.password_field.clear() self.table.refresh_() self.msg_field.setText( u"Transfert vers ({}) a été effectué.".format(number)) self.msg_field.setStyleSheet("color: green") def is_complete(self): self.amount.setStyleSheet("") self.password_field.setStyleSheet("") if unicode(self.amount.text()) == "": self.amount.setStyleSheet("font-size:20px; color: red") self.amount.setText(u"Ce champ est obligatoire.") return False if unicode(self.password_field.text()) == "": self.password_field.setStyleSheet("font-size:20px; color: red") self.password_field.setText(u"Ce champ est obligatoire.") return False return True def check_license(self, license): self.flog = False if (SettingsAdmin().is_valide_mac(license)): self.pixmap = QPixmap(u"{}accept.png".format(Constants.img_cmedia)) self.image.setToolTip("License correct") self.flog = True else: self.pixmap = QPixmap(u"{}decline.png".format( Constants.img_cmedia)) self.image.setToolTip("License incorrect") self.image.setPixmap(self.pixmap) def add_lience(self): """ add User """ name = unicode(self.name_field.text()).strip() license = unicode(self.license_field.toPlainText()) self.check_license(license) if self.flog: sttg = self.sttg sttg.user = name sttg.license = license sttg.save() raise_success( u"Confirmation", u"""La license (<b>{}</b>) à éte bien enregistré pour cette machine.\n Elle doit être bien gardé""".format(license)) self.goto_archi()
class ContactGroupViewWidget(QDialog, FWidget): def __init__(self, table_group, parent, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) self.parent = table_group group_id = self.parent.table_group.group.group_id self.group = Group.select().where(Group.id == group_id).get() vbox = QVBoxLayout() vbox.addWidget( FBoxTitle(u"<h3>Groupe: {}</h3>".format(self.group.name))) self.order_number = LineEdit() # form transfer self.amount = LineEdit() self.amount.setFont(QFont("Arial", 15)) self.amount.setValidator(QIntValidator()) self.amount.setToolTip(u"Taper le montant du transfert") # self.solde = FLabel(get_solde()) self.amount_error = ErrorLabel(u"") send_butt = Button(u"Envoyer") send_butt.clicked.connect(self.sender) cancel_but = Button(u"Annuler") cancel_but.clicked.connect(self.cancel) formbox = QGridLayout() formbox.addWidget(FLabel(u"Montant: "), 0, 0) formbox.addWidget(self.amount, 0, 1) formbox.addWidget(send_butt, 2, 1) formbox.addWidget(cancel_but, 2, 0) vbox.addLayout(formbox) self.setLayout(vbox) def cancel(self): self.close() def isvalid(self): if unicode(self.amount.text()) == "": return False def iscomplet(self): self.amount.setStyleSheet("") self.amount.setText(u"") if unicode(self.amount.text()) == "": self.amount.setStyleSheet("font-size:20px; color: red") self.amount.setText(u"Ce champ est obligatoire.") return False def sender(self): if self.iscomplet: return list_phone_num = [(i.contact.number) for i in ContactGroup.filter(group__id=self.group.id) ] data = { "phone_num": list_phone_num, "code": "03944", "amount": unicode(self.amount.text()) } print data # multiple_sender(data) self.cancel() self.parent.table_group.refresh_()
class SettgViewWidget(QDialog, FWidget): def __init__(self, parent, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) vbox = QVBoxLayout() vbox.addWidget(FBoxTitle(u" Configuration ")) self.sttg = LocalSetting.get(LocalSetting.slug == 1) self.baudrate = LineEdit(self.sttg.baudrate) self.code_consultation = LineEdit(self.sttg.code_consultation) self.code_send = LineEdit(self.sttg.code_send) self.code_send.setEchoMode(LineEdit.Password) self.port = LineEdit(self.sttg.port) formbox = QGridLayout() formbox.addWidget(FLabel(u"Mon de passe"), 1, 0) formbox.addWidget(self.baudrate, 1, 1) formbox.addWidget(FLabel(u"Consultation"), 2, 0) formbox.addWidget(self.code_consultation, 2, 1) formbox.addWidget(FLabel(u"Code envoi"), 3, 0) formbox.addWidget(self.code_send, 3, 1) formbox.addWidget(FLabel(u"PORT"), 4, 0) formbox.addWidget(self.port, 4, 1) butt = Button(u"Enregistrer") butt.clicked.connect(self.edit_prod) cancel_but = Button(u"Annuler") cancel_but.clicked.connect(self.cancel) formbox.addWidget(butt, 5, 1) formbox.addWidget(cancel_but, 5, 0) formbox.setColumnStretch(3, 3) formbox.setRowStretch(2, 2) vbox.addLayout(formbox) self.setLayout(vbox) def cancel(self): self.close() def edit_prod(self): self.port.setStyleSheet("") baudrate = unicode(self.baudrate.text()) code_consultation = unicode(self.code_consultation.text()) code_send = unicode(self.code_send.text()) port = unicode(self.port.text()) if port == "": self.port.setStyleSheet("font-size:20px; color: red") self.port.setText(u"Ce champ est obligatoire.") return False try: self.sttg.baudrate = baudrate self.sttg.code_consultation = code_consultation self.sttg.code_send = code_send self.sttg.port = port self.sttg.save() self.cancel() except sqlite3.IntegrityError: self.port.setStyleSheet("font-size:20px; color: red")
def __init__(self, product="", parent=0, *args, **kwargs): super(InvoiceViewWidget, self).__init__(parent=parent, *args, **kwargs) self.parentWidget().setWindowTitle( Config.APP_NAME + u" Ventes") self.parent = parent vbox = QVBoxLayout(self) # hbox = QHBoxLayout(self) editbox = QGridLayout(self) try: next_number = int( Invoice.select().order_by(Invoice.number.desc()).get().number) + 1 except: next_number = 1 self.num_invoice = IntLineEdit(str(next_number)) self.num_invoice.setToolTip(u"Le numéro") self.num_invoice.setMaximumSize( 40, self.num_invoice.maximumSize().height()) self.invoice_date = FormatDate(QDate.currentDate()) # self.name_client_field = LineEdit() self.string_list = [""] + ["{},{}".format(clt.name, clt.phone) for clt in ProviderOrClient.select().where( ProviderOrClient.type_ == ProviderOrClient.CLT).order_by(ProviderOrClient.name.desc())] # self.name_client_field_new = "" self.name_client_field = ExtendedComboBox() self.name_client_field.addItems(self.string_list) self.name_client_field.setMaximumSize( 200, self.name_client_field.maximumSize().height()) self.name_client_field.setToolTip("Nom, numero du client") self.add_clt_btt = BttSmall(u"+") self.add_clt_btt.clicked.connect(self.add_clt) self.add_clt_btt.setFixedWidth(50) # Combobox widget for add store self.liste_type_invoice = [Invoice.TYPE_FACT, Invoice.TYPE_BON] self.box_type_inv = QComboBox() for index in range(0, len(self.liste_type_invoice)): op = self.liste_type_invoice[index] sentence = u"%(name)s" % {'name': op} self.box_type_inv.addItem(sentence, op) self.search_field = LineEdit() self.search_field.setPlaceholderText("Rechercher un article") self.search_field.textChanged.connect(self.finder) # self.search_field.setFixedWidth(250) self.table_invoice = InvoiceTableWidget(parent=self) self.table_resultat = ResultatTableWidget(parent=self) self.table_info = InfoTableWidget(parent=self) self.table_resultat.refresh_("") editbox.addWidget(self.box_type_inv, 0, 2) editbox.addWidget(self.num_invoice, 0, 3) editbox.addWidget(FLabel(u"Doit :"), 1, 2) editbox.addWidget(self.name_client_field, 1, 3) # editbox.addWidget(self.add_clt_btt, 1, 4) editbox.addWidget(self.invoice_date, 0, 6) editbox.setColumnStretch(0, 1) editbox.setColumnStretch(5, 1) splitter = QSplitter(Qt.Horizontal) splitter_left = QSplitter(Qt.Vertical) splitter_left.addWidget(self.search_field) splitter_left.addWidget(self.table_resultat) # splitter_down.resize(15, 20) splitter_down = QSplitter(Qt.Vertical) splitter_down.addWidget(self.table_info) splitter_rigth = QSplitter(Qt.Vertical) # splitter_rigth.setLayout(editbox) splitter_rigth.addWidget(self.table_invoice) splitter_rigth.resize(800, 900) splitter_left.addWidget(splitter_down) splitter.addWidget(splitter_left) splitter.addWidget(splitter_rigth) vbox.addLayout(editbox) vbox.addWidget(splitter) self.setLayout(vbox)
class SendGroupViewWidget(QDialog, FWidget): def __init__(self, table_group, parent, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) self.parent = table_group group_id = self.parent.table_group.group.group_id self.group = Group.select().where(Group.id == group_id).get() vbox = QVBoxLayout() vbox.addWidget(FBoxTitle( u"<h2>Envoi pour les ({0}) contactes du groupe <b>{1}</b></h2>".format(len(self.group.contacts), self.group.name))) # form transfer self.amount = LineEdit() self.amount.setFont(QFont("Arial", 15)) self.amount.setValidator(QIntValidator()) self.amount.setToolTip(u"Taper le montant du transfert") self.amount_error = ErrorLabel(u"") self.password_field = EnterTabbedLineEdit() self.password_field.setEchoMode(LineEdit.Password) self.password_field.setToolTip(u"Taper le code orange money") self.send_butt = Button(u"Envoyer") self.send_butt.clicked.connect(self.sender) cancel_but = Button(u"Annuler") cancel_but.clicked.connect(self.cancel) formbox = QGridLayout() formbox.addWidget(FLabel(u"Montant: "), 0, 0) formbox.addWidget(self.amount, 0, 1) formbox.addWidget(FLabel(u"Code: "), 1, 0) formbox.addWidget(self.password_field, 1, 1) formbox.addWidget(self.send_butt, 2, 1) formbox.addWidget(cancel_but, 2, 0) self.isvalid() vbox.addLayout(formbox) self.setLayout(vbox) def cancel(self): self.close() def isvalid(self): self.list_phone_num = [(i.contact.number) for i in ContactGroup.filter(group__id=self.group.id)] if self.list_phone_num == []: self.send_butt.setEnabled(False) self.send_butt.setToolTip(u"""Ce groupe n'a pas le numéro de téléphone.""") def iscomplet(self): self.amount.setStyleSheet("") self.amount.setText(u"") self.password_field.setStyleSheet("") self.password_field.setText(u"") if unicode(self.amount.text()) == "": self.amount.setStyleSheet("font-size:20px; color: red") self.amount.setText(u"Ce champ est obligatoire.") return False if unicode(self.password_field.text()) == "": self.password_field.setStyleSheet("font-size:20px; color: red") self.password_field.setText(u"Ce champ est obligatoire.") return False return True def sender(self): if not self.iscomplet: return data = {"phone_num": self.list_phone_num, "code": unicode(self.password_field.text()), "amount": unicode(self.amount.text()) } multiple_sender(data) self.cancel() self.parent.table_group.refresh_()
class NewOrEditOfficeViewWidget(QDialog, FWidget): def __init__(self, pp=None, owner=None, parent=None, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) self.setWindowTitle(u"Nouvel Organisation") self.parent = parent vbox = QVBoxLayout() self.office_group_box() vbox.addWidget(self.organGroupBoxBtt) self.setLayout(vbox) def office_group_box(self): self.organGroupBoxBtt = QGroupBox( self.tr("Configuration des localités")) self.office_box = QComboBox() self.office_box.currentIndexChanged.connect(self.change_select_office) self.office_list = get_offices() self.region_box = QComboBox() self.region_label = FLabel() self.cercle_label = FLabel() self.phone_field = IntLineEdit() self.phone_field.setInputMask('## ## ## ##') self.bp = LineEdit() self.adress_org = QTextEdit() self.email_org = LineEdit() for index, value in enumerate(self.office_list): self.office_box.addItem("{}".format(office_name(value)), value) formbox = QFormLayout() formbox.addRow(FormLabel(u"Nom service :"), self.office_box) formbox.addRow(FormLabel(u"Région"), self.region_label) formbox.addRow(FormLabel(u"Cercle"), self.cercle_label) formbox.addRow(FormLabel(u"Tel :"), self.phone_field) formbox.addRow(FormLabel(u"B.P :"), self.bp) formbox.addRow(FormLabel(u"E-mail :"), self.email_org) formbox.addRow(FormLabel(u"Adresse complete :"), self.adress_org) butt = Button_save(u"Enregistrer") butt.clicked.connect(self.save_edit) formbox.addRow("", butt) self.organGroupBoxBtt.setLayout(formbox) def change_select_office(self): select_o = self.office_box.itemData(self.office_box.currentIndex()) self.r_select = office_region(select_o) self.c_select = office_cercle(select_o) self.region_label.setText(get_entity_name(self.r_select)) self.cercle_label.setText(get_entity_name(self.c_select)) def is_valide(self): if check_is_empty(self.phone_field): return False return True def save_edit(self): ''' add operation ''' if not self.is_valide(): return office = Office() office.slug = self.office_box.itemData(self.office_box.currentIndex()) office.slug_region = self.r_select office.slug_cercle = self.c_select office.phone = is_int(self.phone_field.text()) office.email_org = str(self.email_org.text()) office.bp = str(self.bp.text()) office.adress_org = str(self.adress_org.toPlainText()) office.save_() self.accept()
class NewOrEditUserViewWidget(QDialog, FWidget): def __init__(self, pp=None, owner=None, parent=None, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) self.setWindowTitle(u"Nouvel utilisateur") self.parent = parent self.pp = pp self.owner = owner vbox = QVBoxLayout() formbox = QFormLayout() self.checked = QCheckBox("Active") self.error_mssg = "" if self.owner: self.new = False self.title = u"Modification de l'utilisateur {}".format( self.owner.username) self.succes_msg = u"L'utilisateur a été bien mise à jour" if self.owner.isactive: self.checked.setCheckState(Qt.Checked) else: self.checked.setCheckState(Qt.Checked) self.new = True self.succes_msg = u"L'utilisateur a été bien enregistré" self.title = u"Création d'un nouvel utilisateur" self.owner = Owner() # self.checked.setToolTip(msg) self.setWindowTitle(self.title) self.username_field = LineEdit(self.owner.username) self.username_field.setEnabled(self.new) self.password_field = LineEdit() self.password_field.setEchoMode(LineEdit.PasswordEchoOnEdit) self.password_field_v = LineEdit() self.password_field_v.setEchoMode(LineEdit.PasswordEchoOnEdit) self.password_field_v.textChanged.connect( self.check_password_is_valide) self.phone_field = IntLineEdit(self.owner.phone) self.liste_group = [Owner.ADMIN, Owner.USER] # Combobox widget self.box_group = QComboBox() for index in self.liste_group: self.box_group.addItem(u'%(group)s' % {'group': index}) butt = Button_save(u"Enregistrer") butt.clicked.connect(self.add_or_edit_user) cancel_but = Button(u"Annuler") cancel_but.clicked.connect(self.cancel) formbox.addRow(FLabel(u"Identifiant"), self.username_field) formbox.addRow(FLabel(u"Mot de passe"), self.password_field) if self.new: formbox.addRow( FLabel(u"Verification du Mot de passe"), self.password_field_v) formbox.addRow(FLabel(u"Numero de Téléphone"), self.phone_field) formbox.addRow(FLabel(u"Groupe"), self.box_group) formbox.addRow(cancel_but, butt) vbox.addWidget(self.checked) vbox.addLayout(formbox) self.setLayout(vbox) def cancel(self): self.close() def is_valide(self): # print("isactive") if (check_is_empty(self.username_field)): return False if (check_is_empty(self.password_field)): return False if (self.new and check_is_empty(self.password_field_v)): return False if (not self.check_password_is_valide()): return False return True def check_password_is_valide(self): self.password = str(self.password_field.text()) self.password_v = str( self.password_field_v.text()) if self.new else self.owner.password if is_valide_codition_field( self.password_field_v, "Les mots de passe sont differents" if self.new else "Mot de passe incorrect", self.password != self.password_v): return return True def add_or_edit_user(self): # print(""" add User """) if not self.is_valide(): print("is not valide") return username = str(self.username_field.text()).strip() password = str(self.password_field.text()).strip() phone = str(self.phone_field.text()) group = self.liste_group[self.box_group.currentIndex()] status = False if self.checked.checkState() == Qt.Checked: status = True ow = self.owner ow.username = username ow.password = Owner().crypt_password( password) if self.new else password ow.phone = phone ow.group = group ow.isactive = status try: ow.save() self.close() self.accept() if self.pp: self.pp.refresh_() self.parent.Notify("L'identifiant %s a été enregistré" % ow.username, "success") except IntegrityError as e: field_error( self.name_field, u"L'utilisateurs %s existe déjà dans la base de donnée" % ow.username)
class ContactNewViewWidget(QDialog, FWidget): def __init__(self, parent, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) vbox = QVBoxLayout() vbox.addWidget(FBoxTitle(u"<h3>Ajout de contact </h3>")) self.combo_grp = QComboBox() groups = Group() groups.name = "Aucun" self.list_grp = Group.all() self.list_grp.append(groups) self.list_grp.reverse() for index in self.list_grp: sentence = u"%(name)s" % {'name': index.name} self.combo_grp.addItem(sentence) self.full_name = LineEdit() self.msg_e_or_c = FLabel("") self.full_name.setFont(QFont("Arial", 16)) self.phone_number = IntLineEdit() self.phone_number.setInputMask("D9.99.99.99") self.phone_number.setAlignment(Qt.AlignCenter) self.phone_number.setFont(QFont("Arial", 16)) send_butt = Button(u"Enregistrer") send_butt.clicked.connect(self.save_form) cancel_but = Button(u"Fermer") cancel_but.clicked.connect(self.cancel) formbox = QGridLayout() formbox.addWidget(FLabel(u"Groupes:"), 0, 0) formbox.addWidget(self.combo_grp, 1, 0) formbox.addWidget(FLabel(u"Nom complèt: "), 0, 1) formbox.addWidget(self.full_name, 1, 1) formbox.addWidget(FLabel(u"Numéro: "), 0, 2) formbox.addWidget(self.phone_number, 1, 2) formbox.addWidget(send_butt, 2, 1) formbox.addWidget(cancel_but, 2, 0) formbox.addWidget(self.msg_e_or_c, 3, 0, 3, 2) vbox.addLayout(formbox) self.setLayout(vbox) def cancel(self): self.close() def iscomplet(self): self.phone_number.setStyleSheet("") self.msg_e_or_c.setText("") self.msg_e_or_c.setStyleSheet("") try: int(self.phone_number.text().replace('.', '')) except: self.phone_number.setStyleSheet("border-bottom: 3px solid red;" "background-color:#AFAFAF;") self.phone_number.setToolTip(u"Ce champ est obligatoire.") return False return True def save_form(self): if not self.iscomplet(): return full_name = unicode(self.full_name.text()) phone_number = int(self.phone_number.text().replace('.', '')) try: Contact(number=phone_number, name=full_name).save() except: self.msg_e_or_c.setText(u"Ce numéro existe déjà") self.msg_e_or_c.setStyleSheet("color: red") return grp = unicode(self.list_grp[self.combo_grp.currentIndex()]) if not grp == "Aucun": grp = Group.select().where(Group.name == grp).get() contact = Contact.select().where( Contact.number == phone_number).get() ContactGroup(group=grp.id, contact=contact).save() self.full_name.setText("") self.phone_number.setText("") self.msg_e_or_c.setText( u"Le numéro (<b>{}</b>) à éte bien enregistré".format( phone_number))