Exemplo n.º 1
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)
Exemplo n.º 2
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)
Exemplo n.º 3
0
    def __init__(self, parent, *args, **kwargs):
        QtGui.QDialog.__init__(self, parent, *args, **kwargs)
        super(OrderRemoveWidget, self).__init__(parent=parent, *args, **kwargs)

        self.setWindowTitle(u"Confirmation de le suppression")
        self.title = FPageTitle(u"Voulez vous vraiment supprimer"
                                u" de la sauvegarde?")

        self.title.setAlignment(QtCore.Qt.AlignHCenter)
        title_hbox = QtGui.QHBoxLayout()
        title_hbox.addWidget(self.title)
        report_hbox = QtGui.QGridLayout()

        # delete and cancel hbox
        Button_hbox = QtGui.QHBoxLayout()

        # Delete Button widget.
        delete_but = Button(u"Supprimer")
        Button_hbox.addWidget(delete_but)
        delete_but.clicked.connect(self.delete)
        # Cancel Button widget.
        cancel_but = Button(u"Annuler")
        Button_hbox.addWidget(cancel_but)
        cancel_but.clicked.connect(self.cancel)

        # Create the QVBoxLayout contenaire.
        vbox = QtGui.QVBoxLayout()
        vbox.addLayout(title_hbox)
        vbox.addLayout(report_hbox)
        vbox.addLayout(Button_hbox)
        self.setLayout(vbox)
Exemplo n.º 4
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)
Exemplo n.º 5
0
class OperationWidget(FWidget):

    """docstring for OperationWidget"""

    def __init__(self, parent, *args, **kwargs):
        super(FWidget, self).__init__(parent=parent, *args, **kwargs)

        vbox = QVBoxLayout(self)
        gridbox = QGridLayout()
        self.parent = parent

        self.add_ow_but = Button(_(u"Nouvel utilisateur"))
        self.add_ow_but.setIcon(
            QIcon.fromTheme('', QIcon(u"{}user_add.png".format(Config.img_cmedia))))
        self.add_ow_but.clicked.connect(self.add_owner)

        gridbox.addWidget(self.add_ow_but, 0, 0)

        gridbox.setColumnStretch(1, 5)
        vbox.addLayout(gridbox)
        self.setLayout(vbox)

    def add_owner(self):
        self.parent.parent.open_dialog(
            NewOrEditUserViewWidget, modal=True, pp=self.parent.table_owner)
Exemplo n.º 6
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)
Exemplo n.º 7
0
    def __init__(self, table_p, obj, parent, *args, **kwargs):
        QDialog.__init__(self, parent, *args, **kwargs)

        self.setWindowTitle(u"Confirmation de le suppression")
        self.title = FPageTitle(u"Voulez vous vraiment le supprimer?")
        self.obj = obj
        self.table_p = table_p
        self.parent = parent
        # self.title.setAlignment(Qt.AlignHCenter)
        title_hbox = QHBoxLayout()
        title_hbox.addWidget(self.title)
        report_hbox = QGridLayout()

        report_hbox.addWidget(FLabel(obj.display_name()), 0, 0)
        # delete and cancel hbox
        Button_hbox = QHBoxLayout()

        # Delete Button widget.
        delete_but = Button(u"Supprimer")
        Button_hbox.addWidget(delete_but)
        delete_but.clicked.connect(self.delete)
        # Cancel Button widget.
        cancel_but = Button(u"Annuler")
        Button_hbox.addWidget(cancel_but)
        cancel_but.clicked.connect(self.cancel)

        # Create the QVBoxLayout contenaire.
        vbox = QVBoxLayout()
        vbox.addLayout(title_hbox)
        vbox.addLayout(report_hbox)
        vbox.addLayout(Button_hbox)
        self.setLayout(vbox)
Exemplo n.º 8
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)
Exemplo n.º 9
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)
Exemplo n.º 10
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)
Exemplo n.º 11
0
    def __init__(self, parent=0, *args, **kwargs):

        super(PaymentViewWidget, self).__init__(parent=parent, *args, **kwargs)
        FPeriodHolder.__init__(self, *args, **kwargs)

        self.parentWidget().setWindowTitle(Config.APP_NAME + u"   Movements")
        self.parent = parent

        self.title = u"Movements"

        self.on_date = FormatDate(
            QDate(date.today().year,
                  date.today().month, 1))
        self.end_date = FormatDate(QDate.currentDate())
        self.now = datetime.now().strftime("%x")
        self.soldeField = FormLabel("0")
        self.label_balance = FormLabel(u"Solde au {} ".format(self.now))
        balanceBox = QGridLayout()
        balanceBox.addWidget(self.label_balance, 0, 2)
        balanceBox.addWidget(self.soldeField, 0, 3)
        balanceBox.setColumnStretch(0, 1)

        self.table = RapportTableWidget(parent=self)
        self.button = Button(u"Ok")
        self.button.clicked.connect(self.table.refresh_)

        self.btt_export = BttExportXLSX(u"Exporter")
        self.btt_export.clicked.connect(self.export_xls)
        self.add_btt = Button("Créditer")
        self.add_btt.setIcon(
            QIcon(u"{img_media}{img}".format(img_media=Config.img_media,
                                             img="in.png")))
        self.add_btt.clicked.connect(self.add_payment)
        self.sub_btt = Button("Débiter")
        self.sub_btt.setIcon(
            QIcon(u"{img_media}{img}".format(img_media=Config.img_media,
                                             img="out.png")))
        self.sub_btt.clicked.connect(self.sub_payment)

        editbox = QGridLayout()
        editbox.addWidget(FormLabel(u"Date debut"), 0, 1)
        editbox.addWidget(self.on_date, 0, 2)
        editbox.addWidget(FormLabel(u"Date fin"), 1, 1)
        editbox.addWidget(self.end_date, 1, 2)
        editbox.addWidget(self.button, 1, 3)

        editbox.addWidget(self.sub_btt, 1, 5)
        editbox.addWidget(self.add_btt, 1, 6)
        editbox.addWidget(self.btt_export, 1, 7)
        editbox.setColumnStretch(4, 2)
        vbox = QVBoxLayout()
        vbox.addWidget(FPageTitle(self.title))
        vbox.addLayout(editbox)
        vbox.addWidget(self.table)
        vbox.addLayout(balanceBox)
        self.setLayout(vbox)
Exemplo n.º 12
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)
Exemplo n.º 13
0
class InfoTableWidget(FWidget):

    def __init__(self, parent, *args, **kwargs):
        super(FWidget, self).__init__(parent=parent, *args, **kwargs)

        self.parent = parent

        self.refresh()

        self.details = FLabel()
        self.edit_ow_but = Button(u"Mettre à jour")
        self.edit_ow_but.setIcon(QIcon.fromTheme('document-new',
                                                 QIcon(u"{}edit_user.png".format(Config.img_cmedia))))
        self.edit_ow_but.setEnabled(False)
        self.edit_ow_but.clicked.connect(self.edit_owner)

        self.formbox = QGridLayout()
        self.formbox.addWidget(self.details, 0, 0)
        self.formbox.addWidget(self.edit_ow_but, 0, 1)
        # self.formbox.ColumnStretch(4, 2)
        # self.formbox.RowStretch(6, 2)
        vbox = QVBoxLayout()
        vbox.addLayout(self.formbox)
        self.setLayout(vbox)

    def refresh_(self, owner):
        self.refresh()
        self.owner = owner

        if isinstance(self.owner, int):
            return
        self.details.setText(
            """<h2>Nom:  {username}</h2>
                <h4><b>Active:</b> {isactive}</h4>
                <h4><b>Numéro tel:</b> {phone}</h4>
                <h4><b>Dernière login:</b> {last_login}</h4>
                <h4><b>Nombre de connexion:</b> {login_count}</h4>
                <h4><b>Groupe:</b> {group}</h4>
            """.format(group=self.owner.group,
                       login_count=self.owner.login_count,
                       last_login=self.owner.last_login.strftime(u"%c"),
                       phone=self.owner.phone,
                       isactive=self.owner.isactive,
                       username=self.owner.username))

    def edit_owner(self):
        self.parent.parent.open_dialog(NewOrEditUserViewWidget, owner=self.owner,
                                       modal=True, pp=self.parent.table_info)
Exemplo n.º 14
0
    def __init__(self, parent=0, *args, **kwargs):
        super(InventoryViewWidget, self).__init__(parent=parent,
                                                  *args,
                                                  **kwargs)

        self.parentWidget().setWindowTitle(Config.APP_NAME +
                                           u"     INVENTAIRE")

        self.parent = parent

        self.title = u"Inventaire"

        self.on_date = FormatDate(QDate(date.today().year, 1, 1))
        self.end_date = FormatDate(QDate.currentDate())
        self.button = Button(u"Ok")
        self.button.clicked.connect(self.rapport_filter)
        self.btt_export = BttExportXLSX(u"Exporter")
        self.btt_export.clicked.connect(self.export_xls)

        self.invent_table = InventaireTableWidget(parent=self)
        # Grid
        gridbox = QGridLayout()
        gridbox.addWidget(FormLabel(u"Date debut"), 0, 1)
        gridbox.addWidget(self.on_date, 0, 2)
        gridbox.addWidget(FormLabel(u"Date fin"), 1, 1)
        gridbox.addWidget(self.end_date, 1, 2)
        gridbox.addWidget(self.button, 1, 3)
        gridbox.addWidget(self.btt_export, 1, 6)
        gridbox.setColumnStretch(4, 5)
        vbox = QVBoxLayout()
        vbox.addWidget(FPageTitle(self.title))
        vbox.addLayout(gridbox)
        vbox.addWidget(self.invent_table)
        self.setLayout(vbox)
        self.refresh()
Exemplo n.º 15
0
    def __init__(self, parent=0, *args, **kwargs):
        super(PeriodByViewWidget, self).__init__(parent=parent,
                                                 *args,
                                                 **kwargs)
        self.parent = parent
        self.title = FPageTitle(_(u"Periodic report"))

        self.on_date = FormatDate(QDate(date.today().year, 1, 1))
        self.end_date = FormatDate(QDate.currentDate())
        self.Button = Button(u"OK")
        self.Button.clicked.connect(self.rapport_filter)
        self.current_period = FLabel(
            self.format_period(self.on_date.text(), self.end_date.text()))
        vbox = QVBoxLayout()
        # Grid
        gridbox = QGridLayout()
        gridbox.addWidget(FormLabel(u"Date debut"), 0, 0)
        gridbox.addWidget(self.on_date, 0, 1)
        gridbox.addWidget(FormLabel(u"Date fin"), 1, 0)
        gridbox.addWidget(self.end_date, 1, 1)
        gridbox.addWidget(self.Button, 1, 2)
        gridbox.setColumnStretch(3, 1)

        gridbox.addWidget(self.current_period, 1, 4)

        self.table = By_periodTableWidget(parent=self)

        vbox.addWidget(self.title)
        vbox.addLayout(gridbox)
        vbox.addWidget(self.table)
        self.setLayout(vbox)
Exemplo n.º 16
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)
Exemplo n.º 17
0
    def __init__(self, parent=0, *args, **kwargs):

        super(ProvidersViewWidget, self).__init__(parent=parent,
                                                  *args,
                                                  **kwargs)

        self.parent = parent

        self.title = u"Movements"

        self.on_date = FormatDate(QDate(date.today().year, 1, 1))
        self.end_date = FormatDate(QDate.currentDate())
        # self.now = datetime.now().strftime("%x")
        self.soldeField = FormLabel("{}".format(device_amount(0)))
        balanceBox = QGridLayout()
        balanceBox.addWidget(self.soldeField, 0, 3)
        balanceBox.setColumnStretch(0, 1)

        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 = 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.table = RapportTableWidget(parent=self)
        self.button = Button(u"Ok")
        self.button.clicked.connect(self.refresh_prov_clt)

        self.btt_export = BttExportXLSX(u"Exporter")
        self.btt_export.clicked.connect(self.export_xls)

        editbox = QGridLayout()
        editbox.addWidget(FormLabel(u"Date debut"), 0, 1)
        editbox.addWidget(self.on_date, 0, 2)
        editbox.addWidget(FormLabel(u"Date fin"), 1, 1)
        editbox.addWidget(self.end_date, 1, 2)
        editbox.addWidget(self.name_client_field, 0, 3)
        editbox.addWidget(self.button, 1, 3)

        editbox.addWidget(self.btt_export, 1, 7)
        editbox.setColumnStretch(4, 2)
        vbox = QVBoxLayout()
        vbox.addWidget(FPageTitle(self.title))
        vbox.addLayout(editbox)
        vbox.addWidget(self.table)
        vbox.addLayout(balanceBox)
        self.setLayout(vbox)
Exemplo n.º 18
0
Arquivo: buy.py Projeto: 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)
Exemplo n.º 19
0
    def __init__(self, parent=0, *args, **kwargs):
        super(AdminViewWidget, self).__init__(parent=parent, *args, **kwargs)

        self.parent = parent

        self.parentWidget().setWindowTitle(
            Config.APP_NAME + u"    ADMINISTRATION")

        editbox = QGridLayout()
        table_config = QVBoxLayout()
        self.table_config = OrganizationTableWidget(parent=self)
        table_config.addLayout(editbox)
        table_config.addWidget(self.table_config)

        self.bttrestor = Button(_(u"Restaurer"))
        self.bttrestor.clicked.connect(self.restorseleted)
        self.bttrestor.setEnabled(False)
        self.bttempty = Button(_(u"Vide"))
        self.bttempty.clicked.connect(self.deletedseleted)
        self.bttempty.setEnabled(False)
        # Grid
        gridbox = QGridLayout()
        history_table = QVBoxLayout()

        self.history_table = TrashTableWidget(parent=self)
        history_table.addLayout(gridbox)
        history_table.addWidget(self.history_table)

        table_login = QVBoxLayout()
        self.table_login = LoginManageWidget(parent=self)
        table_login.addLayout(gridbox)
        table_login.addWidget(self.table_login)

        tab_widget = tabbox((table_config, _(u"Gestion de l'organisation")),
                            (history_table, _(u"Historique")),
                            (table_login, _(u"Gestion d'Utilisateurs")),
                            )

        vbox = QVBoxLayout()
        vbox.addWidget(tab_widget)
        self.setLayout(vbox)
Exemplo n.º 20
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)
Exemplo n.º 21
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)
Exemplo n.º 22
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)
Exemplo n.º 23
0
    def __init__(self, parent, *args, **kwargs):
        super(FWidget, self).__init__(parent=parent, *args, **kwargs)

        vbox = QVBoxLayout(self)
        gridbox = QGridLayout()
        self.parent = parent

        self.add_ow_but = Button(_(u"Nouvel utilisateur"))
        self.add_ow_but.setIcon(
            QIcon.fromTheme('', QIcon(u"{}user_add.png".format(Config.img_cmedia))))
        self.add_ow_but.clicked.connect(self.add_owner)

        gridbox.addWidget(self.add_ow_but, 0, 0)

        gridbox.setColumnStretch(1, 5)
        vbox.addLayout(gridbox)
        self.setLayout(vbox)
Exemplo n.º 24
0
    def __init__(self, parent, *args, **kwargs):
        super(FWidget, self).__init__(parent=parent, *args, **kwargs)

        self.parent = parent

        self.refresh()

        self.details = FLabel()
        self.edit_ow_but = Button(u"Mettre à jour")
        self.edit_ow_but.setIcon(QIcon.fromTheme('document-new',
                                                 QIcon(u"{}edit_user.png".format(Config.img_cmedia))))
        self.edit_ow_but.setEnabled(False)
        self.edit_ow_but.clicked.connect(self.edit_owner)

        self.formbox = QGridLayout()
        self.formbox.addWidget(self.details, 0, 0)
        self.formbox.addWidget(self.edit_ow_but, 0, 1)
        # self.formbox.ColumnStretch(4, 2)
        # self.formbox.RowStretch(6, 2)
        vbox = QVBoxLayout()
        vbox.addLayout(self.formbox)
        self.setLayout(vbox)
Exemplo n.º 25
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)
Exemplo n.º 26
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)
Exemplo n.º 27
0
class PaymentViewWidget(FWidget, FPeriodHolder):
    def __init__(self, parent=0, *args, **kwargs):

        super(PaymentViewWidget, self).__init__(parent=parent, *args, **kwargs)
        FPeriodHolder.__init__(self, *args, **kwargs)

        self.parentWidget().setWindowTitle(Config.APP_NAME + u"   Movements")
        self.parent = parent

        self.title = u"Movements"

        self.on_date = FormatDate(
            QDate(date.today().year,
                  date.today().month, 1))
        self.end_date = FormatDate(QDate.currentDate())
        self.now = datetime.now().strftime("%x")
        self.soldeField = FormLabel("0")
        self.label_balance = FormLabel(u"Solde au {} ".format(self.now))
        balanceBox = QGridLayout()
        balanceBox.addWidget(self.label_balance, 0, 2)
        balanceBox.addWidget(self.soldeField, 0, 3)
        balanceBox.setColumnStretch(0, 1)

        self.table = RapportTableWidget(parent=self)
        self.button = Button(u"Ok")
        self.button.clicked.connect(self.table.refresh_)

        self.btt_export = BttExportXLSX(u"Exporter")
        self.btt_export.clicked.connect(self.export_xls)
        self.add_btt = Button("Créditer")
        self.add_btt.setIcon(
            QIcon(u"{img_media}{img}".format(img_media=Config.img_media,
                                             img="in.png")))
        self.add_btt.clicked.connect(self.add_payment)
        self.sub_btt = Button("Débiter")
        self.sub_btt.setIcon(
            QIcon(u"{img_media}{img}".format(img_media=Config.img_media,
                                             img="out.png")))
        self.sub_btt.clicked.connect(self.sub_payment)

        editbox = QGridLayout()
        editbox.addWidget(FormLabel(u"Date debut"), 0, 1)
        editbox.addWidget(self.on_date, 0, 2)
        editbox.addWidget(FormLabel(u"Date fin"), 1, 1)
        editbox.addWidget(self.end_date, 1, 2)
        editbox.addWidget(self.button, 1, 3)

        editbox.addWidget(self.sub_btt, 1, 5)
        editbox.addWidget(self.add_btt, 1, 6)
        editbox.addWidget(self.btt_export, 1, 7)
        editbox.setColumnStretch(4, 2)
        vbox = QVBoxLayout()
        vbox.addWidget(FPageTitle(self.title))
        vbox.addLayout(editbox)
        vbox.addWidget(self.table)
        vbox.addLayout(balanceBox)
        self.setLayout(vbox)

    def export_xls(self):
        from Common.exports_xlsx import export_dynamic_data
        dict_data = {
            'file_name':
            "versements.xlsx",
            'headers':
            self.table.hheaders[:-1],
            'data':
            self.table.data,
            "extend_rows": [
                (1, self.table.label_mov_tt),
                (2, self.table.totals_debit),
                (3, self.table.totals_credit),
            ],
            "footers": [
                ("C", "E", "Solde au {} = {}".format(self.now,
                                                     self.table.balance_tt)),
            ],
            'sheet':
            self.title,
            # 'title': self.title,
            'format_money': [
                'C:C',
                'D:D',
                'E:E',
            ],
            'widths':
            self.table.stretch_columns,
            'exclude_row':
            len(self.table.data) - 1,
            "date":
            "Du {} au {}".format(
                date_to_datetime(self.on_date.text()).strftime(u'%d/%m/%Y'),
                date_to_datetime(self.end_date.text()).strftime(u'%d/%m/%Y'))
        }
        export_dynamic_data(dict_data)

    def add_payment(self):
        print("add_payment")
        self.open_dialog(EditOrAddPaymentrDialog,
                         modal=True,
                         payment=None,
                         type_=Payment.CREDIT,
                         table_p=self.table)

    def sub_payment(self):
        print("sub_payment")
        self.open_dialog(EditOrAddPaymentrDialog,
                         modal=True,
                         payment=None,
                         type_=Payment.DEBIT,
                         table_p=self.table)
Exemplo n.º 28
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_()
Exemplo n.º 29
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_()
Exemplo n.º 30
0
class AdminViewWidget(FWidget):

    def __init__(self, parent=0, *args, **kwargs):
        super(AdminViewWidget, self).__init__(parent=parent, *args, **kwargs)

        self.parent = parent

        self.parentWidget().setWindowTitle(
            Config.APP_NAME + u"    ADMINISTRATION")

        editbox = QGridLayout()
        table_config = QVBoxLayout()
        self.table_config = OrganizationTableWidget(parent=self)
        table_config.addLayout(editbox)
        table_config.addWidget(self.table_config)

        self.bttrestor = Button(_(u"Restaurer"))
        self.bttrestor.clicked.connect(self.restorseleted)
        self.bttrestor.setEnabled(False)
        self.bttempty = Button(_(u"Vide"))
        self.bttempty.clicked.connect(self.deletedseleted)
        self.bttempty.setEnabled(False)
        # Grid
        gridbox = QGridLayout()
        history_table = QVBoxLayout()

        self.history_table = TrashTableWidget(parent=self)
        history_table.addLayout(gridbox)
        history_table.addWidget(self.history_table)

        table_login = QVBoxLayout()
        self.table_login = LoginManageWidget(parent=self)
        table_login.addLayout(gridbox)
        table_login.addWidget(self.table_login)

        tab_widget = tabbox((table_config, _(u"Gestion de l'organisation")),
                            (history_table, _(u"Historique")),
                            (table_login, _(u"Gestion d'Utilisateurs")),
                            )

        vbox = QVBoxLayout()
        vbox.addWidget(tab_widget)
        self.setLayout(vbox)

    def enablebtt(self):
        self.bttrestor.setEnabled(True)
        self.bttempty.setEnabled(True)

    def restorseleted(self):
        for doc in self.history_table.getSelectTableItems():
            doc.isnottrash()
            self.history_table.refresh_()

    def deletedseleted(self):
        reply = QMessageBox.question(
            self, 'Suppression definitive',
            self.tr("Voulez vous vraiment le supprimer?"),
            QMessageBox.Yes, QMessageBox.No)

        if reply == QMessageBox.Yes:
            for doc in self.history_table.getSelectTableItems():
                doc.remove_doc()
                self.history_table.refresh_()
Exemplo n.º 31
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)
Exemplo n.º 32
0
Arquivo: buy.py Projeto: 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)
Exemplo n.º 33
0
    def __init__(self, table_p, report, parent, *args, **kwargs):
        QDialog.__init__(self, parent, *args, **kwargs)

        self.setWindowTitle(u"Modification")
        self.table_p = table_p
        self.rpt = report
        self.parent = parent

        self.out_op = True
        if self.rpt.type_ == Report.E:
            self.out_op = False

        self.selling_price_field = IntLineEdit(unicode(self.rpt.selling_price))
        self.cost_buying_field = IntLineEdit(unicode(self.rpt.cost_buying))
        self.qty_field = IntLineEdit(unicode(self.rpt.qty))

        self.date_field = FormatDate(QDate(self.rpt.date))
        self.date_field.setEnabled(False)

        butt = Button(u"Mise à jour")
        butt.clicked.connect(self.edit_report)
        cancel_but = Button(u"Annuler")
        cancel_but.clicked.connect(self.cancel)

        # Combobox widget
        i = 0
        self.liste_type = [Report.E, Report.S]
        self.box_type = QComboBox()
        self.box_type.setEnabled(False)
        for index in xrange(0, len(self.liste_type)):
            ty = self.liste_type[index]
            if ty == self.rpt.type_:
                i = index
            sentence = u"%(ty)s" % {'ty': ty}
            self.box_type.addItem(sentence, ty)
            self.box_type.setCurrentIndex(i)
        # Combobox widget
        # self.liste_store = Store.order_by(desc(Store.id)).all()
        # self.box_mag = QComboBox()
        # for index in xrange(0, len(self.liste_store)):
        #     op = self.liste_store[index]
        #     sentence = u"%(name)s" % {'name': op.name}
        #     self.box_mag.addItem(sentence, QVariant(op.id))
        # Combobox widget

        self.liste_product = Product.all()
        self.box_prod_field = QComboBox()
        self.box_prod_field.setEnabled(False)

        for index in xrange(0, len(self.liste_product)):
            prod = self.liste_product[index]
            if prod.name == self.rpt.product.name:
                i = index
            sentence = u"%(name)s" % {'name': prod.name}
            self.box_prod_field.addItem(sentence, prod.id)
            self.box_prod_field.setCurrentIndex(i)
        vbox = QVBoxLayout()
        formbox = QFormLayout()
        # editbox.addWidget(FormLabel((_(u"Store"))), 0, 1)
        # editbox.addWidget(self.box_mag, 1, 1)
        formbox.addRow(FormLabel(u"Type"), FormLabel(self.rpt.type_))
        formbox.addRow(FormLabel(u"Désignation"), self.box_prod_field)
        formbox.addRow(FormLabel(u"Quantité"), self.qty_field)
        formbox.addRow(FormLabel("Prix d'achat"), self.cost_buying_field)
        formbox.addRow(FormLabel("Prix vente"), self.selling_price_field)
        formbox.addRow(FormLabel(u"Date"), self.date_field)
        formbox.addRow(butt, cancel_but)
        vbox.addLayout(formbox)
        self.setLayout(vbox)
Exemplo n.º 34
0
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()
        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)

    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)