예제 #1
0
파일: apricot.py 프로젝트: Ciwara/GCiss
    def extend_rows(self):

        self.parent.btt_export.setEnabled(True)
        nb_rows = self.rowCount()
        date = self.parent.date_.text()

        self.setRowCount(nb_rows + 4)

        self.amount_ht = 0
        for row_num in xrange(0, self.data.__len__()):
            mtt = is_int(self.item(row_num, 3).text())
            self.amount_ht += mtt

        row_num += 1
        self.setItem(row_num, 2, TotalsWidget(u"Total vente : "))
        self.amount_apricot = self.amount_ht
        self.setItem(
            row_num, 3,
            TotalsWidget(formatted_number(formatted_number(self.amount_ht))))
        row_num += 1
        self.setItem(row_num, 2, TotalsWidget(u"Dette du jour : "))
        self.total_debt = Refund.select(fn.SUM(Refund.amount)).where(
            Refund.type_ == Refund.DT,
            Refund.date < date_on_or_end(date, on=False),
            Refund.date > date_on_or_end(date)).scalar() or 0
        if self.total_debt:
            self.amount_apricot -= self.total_debt
        self.setItem(
            row_num, 3,
            TotalsWidget(formatted_number(formatted_number(self.total_debt))))
        row_num += 1
        self.setItem(row_num, 2, TotalsWidget(u"Dette reglée : "))
        self.total_refund = Refund.select(fn.SUM(Refund.amount)).where(
            Refund.type_ == Refund.RB,
            Refund.date < date_on_or_end(date, on=False),
            Refund.date > date_on_or_end(date)).scalar() or 0
        if self.total_refund:
            self.amount_apricot += self.total_refund
        self.setItem(
            row_num, 3,
            TotalsWidget(formatted_number(formatted_number(
                self.total_refund))))
        row_num += 1
        self.setItem(row_num, 2, TotalsWidget(u"Caise : "))
        self.setItem(
            row_num, 3,
            TotalsWidget(
                formatted_number(formatted_number(self.amount_apricot))))
        self.setSpan(nb_rows, 0, 4, 2)
예제 #2
0
    def __init__(self, table_p, parent, provid_clt=None, type_=None, refund=None, *args, **kwargs):
        QDialog.__init__(self, parent, *args, **kwargs)

        self.type_ = type_
        self.refund = refund
        self.parent = parent
        self.table_p = table_p
        self.provid_clt = provid_clt
        self.new = True
        if self.refund:
            self.new = False
            self.last_r = self.refund
            self.type_ = refund.type_
            self.refund_date_field = FormatDate(self.refund.date)
            self.refund_date_field.setEnabled(False)
            self.title = u"Modification de {} {}".format(self.refund.type_,
                                                         self.refund.invoice.client)
            self.succes_msg = u"{} a été bien mise à jour".format(
                self.refund.type_)
            self.amount = refund.amount
            self.provid_clt = refund.provider_client
        else:
            self.refund_date_field = FormatDate(QDate.currentDate())
            self.succes_msg = u"Client a été bien enregistré"
            self.title = u"Création d'un nouvel client"
            self.amount = ""
            self.refund = Refund()
            self.last_r = Refund.select().where(
                Refund.provider_client == provid_clt).order_by(Refund.date.desc()).get()

        self.setWindowTitle(self.title)
        self.amount_field = IntLineEdit(unicode(self.amount))

        vbox = QVBoxLayout()
        self.last_remaining = self.last_r.refund_remaing()
        print(self.last_remaining)
        # try:
        #     self.last_r.refund_remaing()
        # self.remaining = self.last_r.remaining
        # except Exception as e:
        #     self
        #     print("last_r except ", e)
        #     self.last_r = None
        # self.close()

        formbox = QFormLayout()
        formbox.addRow(FormLabel("Client :"),
                       FormLabel(self.provid_clt.name))
        formbox.addRow(FormLabel("Dette restante :"),
                       FormLabel(str(formatted_number(self.last_remaining)) + Config.DEVISE))
        formbox.addRow(FormLabel(u"Date : *"), self.refund_date_field)
        formbox.addRow(FormLabel(u"Montant : *"), self.amount_field)

        butt = Button_save(u"Enregistrer")
        butt.clicked.connect(self.save_edit)
        formbox.addRow("", butt)
        # formbox.addRow("", "Le client {} n'est pas endetté")

        vbox.addLayout(formbox)
        self.setLayout(vbox)
예제 #3
0
    def __init__(self, table_p, parent, provid_clt=None, type_=None, refund=None, *args, **kwargs):
        QDialog.__init__(self, parent, *args, **kwargs)

        self.type_ = type_
        self.refund = refund
        self.parent = parent
        self.table_p = table_p
        self.provid_clt = provid_clt
        self.new = True
        if self.refund:
            self.new = False
            self.last_r = self.refund
            self.type_ = refund.type_
            self.refund_date_field = FormatDate(self.refund.date)
            self.refund_date_field.setEnabled(False)
            self.title = u"Modification de {} {}".format(self.refund.type_,
                                                         self.refund.invoice.client)
            self.succes_msg = u"{} a été bien mise à jour".format(
                self.refund.type_)
            self.amount = refund.amount
            self.provid_clt = refund.provider_client
        else:
            self.refund_date_field = FormatDate(QDate.currentDate())
            self.succes_msg = u"Client a été bien enregistré"
            self.title = u"Création d'un nouvel client"
            self.amount = ""
            self.refund = Refund()
            self.last_r = Refund.select().where(
                Refund.provider_client == provid_clt).order_by(Refund.date.desc()).get()

        self.setWindowTitle(self.title)
        self.amount_field = IntLineEdit(unicode(self.amount))

        vbox = QVBoxLayout()
        self.last_remaining = self.last_r.refund_remaing()
        # try:
        #     self.last_r.refund_remaing()
        # self.remaining = self.last_r.remaining
        # except Exception as e:
        #     self
        #     print("last_r except ", e)
        #     self.last_r = None
        # self.close()

        formbox = QFormLayout()
        formbox.addRow(FormLabel("Client :"),
                       FormLabel(self.provid_clt.name))
        formbox.addRow(FormLabel("Dette restante :"),
                       FormLabel(str(formatted_number(self.last_remaining))))
        formbox.addRow(FormLabel(u"Date : *"), self.refund_date_field)
        formbox.addRow(FormLabel(u"Montant : *"), self.amount_field)

        butt = ButtonSave(u"Enregistrer")
        butt.clicked.connect(self.save_edit)
        formbox.addRow("", butt)
        # formbox.addRow("", "Le client {} n'est pas endetté")

        vbox.addLayout(formbox)
        self.setLayout(vbox)
예제 #4
0
    def set_data_for(self, provid_clt_id=None, search=None):
        self.provid_clt_id = provid_clt_id
        qs = Refund.select().where(
            Refund.status == False).order_by(Refund.date.desc())

        if isinstance(provid_clt_id, int):
            qs = qs.select().where(
                Refund.provider_client == ProviderOrClient.get(id=provid_clt_id))
        self.data = [(ref.id, ref.type_, show_date(ref.date), ref.invoice.number,
                      ref.amount, ref.remaining) for ref in qs]
예제 #5
0
파일: apricot.py 프로젝트: Ciwara/GCiss
    def extend_rows(self):
        nb_rows = self.rowCount()
        date = self.parent.date_.text()

        self.setRowCount(nb_rows + 4)

        self.amount_ht = 0
        for row_num in xrange(0, self.data.__len__()):
            mtt = is_int(self.item(row_num, 3).text())
            self.amount_ht += mtt

        row_num += 1
        self.setItem(row_num, 2, TotalsWidget(u"Total vente : "))
        self.amount_apricot = self.amount_ht
        self.setItem(row_num, 3, TotalsWidget(
            formatted_number(formatted_number(self.amount_ht))))
        row_num += 1
        self.setItem(row_num, 2, TotalsWidget(u"Dette du jour : "))
        self.total_debt = Refund.select(fn.SUM(Refund.amount)).where(
            Refund.type_ == Refund.DT, Refund.date < date_on_or_end(
                date, on=False),  Refund.date > date_on_or_end(date)).scalar() or 0
        if self.total_debt:
            self.amount_apricot -= self.total_debt
        self.setItem(row_num, 3, TotalsWidget(
            formatted_number(formatted_number(self.total_debt))))
        row_num += 1
        self.setItem(row_num, 2, TotalsWidget(u"Dette reglée : "))
        self.total_refund = Refund.select(fn.SUM(Refund.amount)).where(
            Refund.type_ == Refund.RB, Refund.date < date_on_or_end(
                date, on=False),  Refund.date > date_on_or_end(date)).scalar() or 0
        if self.total_refund:
            self.amount_apricot += self.total_refund
        self.setItem(row_num, 3, TotalsWidget(
            formatted_number(formatted_number(self.total_refund))))
        row_num += 1
        self.setItem(row_num, 2, TotalsWidget(u"Caise : "))
        self.setItem(row_num, 3, TotalsWidget(
            formatted_number(formatted_number(self.amount_apricot))))
        self.setSpan(nb_rows, 0, 4, 2)
예제 #6
0
    def set_data_for(self, provid_clt_id=None, search=None):
        self.provid_clt_id = provid_clt_id
        qs = Refund.select().where(Refund.status == False).order_by(
            Refund.date.desc())

        self.remaining = 0
        if isinstance(provid_clt_id, int):
            qs = qs.select().where(
                Refund.provider_client == ProviderOrClient.get(
                    id=provid_clt_id))
        else:
            for prov in ProviderOrClient.select().where(
                    ProviderOrClient.type_ == ProviderOrClient.CLT):
                self.remaining += prov.last_remaining()
        self.parent.remaining_box.setText(
            self.display_remaining(formatted_number(self.remaining)))

        self.data = [(ref.id, ref.type_, ref.date, ref.invoice.number,
                      ref.amount, ref.remaining) for ref in qs.iterator()]