Ich möchte die Unlink-Methode des account.invoice-Modells überschreiben.Odoo 10 - Abrufen des Werts der Rechnungssequenz
Derzeit ist diese Methode:
@api.multi
def unlink(self):
for invoice in self:
if invoice.state not in ('draft', 'cancel'):
raise UserError(
_('You cannot delete an invoice which is not draft or cancelled. You should refund it instead.'))
elif invoice.move_name:
raise UserError(_(
'You cannot delete an invoice after it has been validated (and received a number). You can set it back to "Draft" state and modify its content, then re-confirm it.'))
return super(AccountInvoice, self).unlink()
Wenn move_name (das heißt eine gültige Folge zu dieser Rechnung gegeben wurde) zugewiesen wurde, ist es nicht Sie die Rechnung entbindet lassen. Dies ist zwar eine perfekte und einwandfreie Bilanzierungsregel, spiegelt jedoch das schlechte Verständnis der tatsächlichen Geschäftsabläufe in bestimmten Unternehmen wider, in denen Sie tatsächlich eine Rechnung löschen müssen.
So möchte ich Benutzern erlauben, letzte Rechnung zu löschen, auch wenn es ausgelöst wurde.
Um das zu tun, programmatisch (innerhalb des Python Löschmethode) werden die folgenden Maßnahmen erforderlich:
- ID der Sequenz identifizieren, die
- überprüfen, ob der Wert von move_name Einstimmungen zu dieser Rechnung gilt mit dem letzten von dieser Sequenz
- wenn so generierte Wert, die Rechnung löschen und einen von dem nächsten Wert der Sequenz
Danke,
Ich möchte Benutzer nur die zuletzt erstellte Rechnung löschen. Es ist ein fairer Handel, es ihnen nicht zu erlauben, Rechnungen zu löschen (gemäß Rechnungslegungsstandards/Gesetzgebung in den meisten Ländern) und ihnen einen Raum zu geben, Fehler zu beheben. –