2016-10-31 13 views
1

私はこのシナリオを請求書行に実装しようとしています。請求書行sum - Odoo v8

私の請求書のラインには50の商品があり、40の商品は税金の影響を受けており、10の商品は税金の影響を受けていないとします。

だから、私の請求書の結果では、私は2つの40個の税金の影響を受ける製品の合計を返す必要があります。この

exe = fields.Float(string='Monto Exento', digits=dp.get_precision('Account'), 
    store=True, readonly=True, compute='extras', track_visibility='always') 

を計算するフィールド、および

impo = fields.Float(string='Base Imponible', digits=dp.get_precision('Account'), 
    store=True, readonly=True, compute='extras', track_visibility='always') 

が返すこのフィールドを持っています税金の影響を受けていない他の10製品の合計。

さて、私は、関数からこれを呼び出して、結果を計算:

@api.one 
@api.depends('invoice_line.price_subtotal', 'tax_line.amount') 
def extras(self): 
    self.exe = self.amount_untaxed + self.amount_tax 
    self.impo = self.amount_untaxed + self.amount_tax 

rec=0 

しかし、期待どおりに動作していない、私はのために多分それは、ここで間違っている可能性が何か分かりません私はこれをどのように処理していますextras機能?

これは、すべての行の合計量のようなすべてを合計します。

@api.one 
@api.depends('invoice_line.price_subtotal', 'tax_line.amount') 
def extras(self): 
    self.exe = self.amount_untaxed + self.amount_tax if self.amount_tax and self.amount_tax > 0 else 0 
    self.impo = self.amount_untaxed + self.amount_tax if not self.amount_tax or self.amount_tax == 0 else 0 

をしかしimpoフィールドにそれはちょうどそれをすべて合計し、課税や、私がしようとしているではない:@phillipstack答えを後

EDIT

は、私はこのように私のコードを更新しました1つは払い戻されていない製品、もう1つは課税されています。

オンexe右の数字は表示されません。

exeには、非乳製品の総量が表示され、impoには課税額が表示されます。

詳細が必要な場合はお知らせください。

+0

お試しいただいたモデルを教えてください。 sales.orderではなくaccount.invoiceと思われますか?だからあなたは請求書の行から値を集計しようとしますか? – CZoellner

+0

はい、account.invoiceですが、これは税金がそこから来ているからです。sales.orderもaccount.invoiceから取ります。 – NeoVe

+0

私はとても残念です。これはaccount.invoiceで、私の質問を編集する必要があります。あなたはこのようなことが起こるのをたくさんやっています。笑 – NeoVe

答えて

1

ifステートメントを指定して、スクリプトが特定の基準を満たしているかどうかを合計する必要がないようにする必要があります。私はあなたの要件については十分に分かっていませんが、これはうまくいくかもしれません。またはこのようなもの。

@api.one 
@api.depends('invoice_line.price_subtotal', 'tax_line.amount') 
def extras(self): 
    self.exe = self.amount_untaxed + self.amount_tax if self.amount_tax and self.amount_tax > 0 else 0 
    self.impo = self.amount_untaxed + self.amount_tax if not self.amount_tax or self.amount_tax == 0 else 0 
+0

こんにちは、ありがとう、よく、すべてを取り込み、インポフィールドでまとめます。私はそれを達成するためにそれを修正しようとしています – NeoVe

+1

あなたはいくつかの進歩をするが、より多くの助けが必要な場合は、常にあなたの質問を更新することができます。 –

+0

クール、やってよ、どうもありがとう – NeoVe