Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
    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)
Ejemplo n.º 9
0
    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)
Ejemplo n.º 10
0
    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)
Ejemplo n.º 11
0
    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)
Ejemplo n.º 12
0
    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)
Ejemplo n.º 13
0
    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)
Ejemplo n.º 14
0
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)
Ejemplo n.º 15
0
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)
Ejemplo n.º 16
0
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)
Ejemplo n.º 17
0
    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)
Ejemplo n.º 18
0
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)
Ejemplo n.º 19
0
    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)
Ejemplo n.º 20
0
    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)
Ejemplo n.º 21
0
    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)
Ejemplo n.º 22
0
    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)
Ejemplo n.º 23
0
    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)
Ejemplo n.º 24
0
    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)
Ejemplo n.º 25
0
    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)
Ejemplo n.º 26
0
    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)
Ejemplo n.º 27
0
    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)
Ejemplo n.º 28
0
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)
Ejemplo n.º 29
0
Archivo: buy.py Proyecto: Ciwara/GCiss
    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)
Ejemplo n.º 30
0
    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)
Ejemplo n.º 31
0
    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)
Ejemplo n.º 32
0
    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)
Ejemplo n.º 33
0
    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)
Ejemplo n.º 34
0
    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)
Ejemplo n.º 35
0
    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)
Ejemplo n.º 36
0
    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)
Ejemplo n.º 37
0
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)
Ejemplo n.º 38
0
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)
Ejemplo n.º 39
0
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.")
Ejemplo n.º 40
0
    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)
Ejemplo n.º 41
0
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))
Ejemplo n.º 42
0
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()
Ejemplo n.º 43
0
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_()
Ejemplo n.º 44
0
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()
Ejemplo n.º 45
0
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")
Ejemplo n.º 46
0
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_()
Ejemplo n.º 47
0
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)))
Ejemplo n.º 48
0
Archivo: buy.py Proyecto: Ciwara/GCiss
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)
Ejemplo n.º 49
0
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()
Ejemplo n.º 50
0
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_()
Ejemplo n.º 51
0
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")
Ejemplo n.º 52
0
    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)
Ejemplo n.º 53
0
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_()
Ejemplo n.º 54
0
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()
Ejemplo n.º 55
0
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)
Ejemplo n.º 56
0
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))