mirror of
https://bitbucket.org/presik/trytonpsk-farming.git
synced 2023-12-14 05:23:00 +01:00
Fix
This commit is contained in:
parent
50b4a35a9f
commit
d79d6ec2d7
5 changed files with 63 additions and 28 deletions
30
invoice.py
30
invoice.py
|
@ -11,23 +11,23 @@ STATES = {
|
|||
|
||||
class Invoice(metaclass=PoolMeta):
|
||||
__name__ = 'account.invoice'
|
||||
boxes = fields.Function(fields.Float('Boxes', digits=(6, 2)),
|
||||
'get_lines_totals')
|
||||
packing_qty = fields.Function(fields.Float('Pieces', digits=(6, 2)),
|
||||
'get_lines_totals')
|
||||
quantity = fields.Function(fields.Float('Quantity', digits=(6, 2)),
|
||||
'get_lines_totals')
|
||||
unit_qty = fields.Function(fields.Float('Stems', digits=(6, 2)),
|
||||
'get_lines_totals')
|
||||
boxes = fields.Float('Boxes', digits=(6, 2))
|
||||
packing_qty = fields.Float('Pieces', digits=(6, 2))
|
||||
quantity = fields.Float('Quantity', digits=(6, 2))
|
||||
unit_qty = fields.Float('Stems', digits=(6, 2))
|
||||
# 'get_lines_totals')
|
||||
|
||||
def get_lines_totals(self, name=None):
|
||||
res = []
|
||||
append_ = res.append
|
||||
@fields.depends('unit_qty', 'quantity', 'packing_qty', 'boxes', 'lines')
|
||||
def on_change_lines(self):
|
||||
if self.type == 'out':
|
||||
for line in self.lines:
|
||||
if line.origin and hasattr(line.origin, name):
|
||||
append_(getattr(line.origin, name) or 0)
|
||||
return round(sum(res), 2)
|
||||
for name in ('unit_qty', 'quantity', 'packing_qty'):
|
||||
values = []
|
||||
for line in self.lines:
|
||||
if line.origin and hasattr(line.origin, name):
|
||||
values.append(getattr(line.origin, name) or 0)
|
||||
res = round(sum(values), 2)
|
||||
print(name, res)
|
||||
setattr(self, name, res)
|
||||
|
||||
|
||||
class InvoiceLine(metaclass=PoolMeta):
|
||||
|
|
Binary file not shown.
27
sale.py
27
sale.py
|
@ -1,6 +1,6 @@
|
|||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
from datetime import timedelta
|
||||
from datetime import timedelta, date
|
||||
from itertools import chain
|
||||
from sql import Table
|
||||
|
||||
|
@ -38,6 +38,7 @@ class Sale(metaclass=PoolMeta):
|
|||
'get_lines_totals')
|
||||
quantity = fields.Function(fields.Float('Quantity', digits=(6, 0)),
|
||||
'get_lines_totals')
|
||||
aged = fields.Function(fields.Integer('Aged'), 'get_aged')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
|
@ -183,6 +184,11 @@ class Sale(metaclass=PoolMeta):
|
|||
pruduction, = Production.create([data])
|
||||
return pruduction.id
|
||||
|
||||
def get_aged(self, name=None):
|
||||
if self.sale_date:
|
||||
aged = (date.today() - self.sale_date).days
|
||||
return aged
|
||||
|
||||
def get_lines_totals(self, name=None):
|
||||
return sum(getattr(line, name) or 0 for line in self.lines)
|
||||
|
||||
|
@ -471,7 +477,7 @@ class PortfolioDetailed(Wizard):
|
|||
'Portfolio Detailed'
|
||||
__name__ = 'farming.portfolio_detailed'
|
||||
start = StateView('farming.portfolio_detailed.start',
|
||||
'farming.print_portfolio_detailed_start_view_form', [
|
||||
'farming.print_sale_portfolio_detailed_start_view_form', [
|
||||
Button('Cancel', 'end', 'tryton-cancel'),
|
||||
Button('Print', 'print_', 'tryton-ok', default=True),
|
||||
])
|
||||
|
@ -492,14 +498,11 @@ class PortfolioDetailed(Wizard):
|
|||
|
||||
|
||||
class PortfolioDetailedReport(Report):
|
||||
__name__ = 'party.portfolio_detailed.report'
|
||||
__name__ = 'farming.portfolio_detailed.report'
|
||||
|
||||
@classmethod
|
||||
def get_domain_inv(cls, dom_sales, data):
|
||||
states = ['done']
|
||||
# if data['to_date']:
|
||||
# states.append('paid')
|
||||
# ('state', '!=', ['done'])
|
||||
dom_sales.append([
|
||||
('company', '=', data['company']),
|
||||
])
|
||||
|
@ -532,17 +535,15 @@ class PortfolioDetailedReport(Report):
|
|||
if data['to_date']:
|
||||
move_lines_paid = []
|
||||
for line in sale.payments:
|
||||
if line.move.date <= data['to_date']:
|
||||
pay_to_date.append(line.debit - line.credit)
|
||||
move_lines_paid.append(line.id)
|
||||
if line.date <= data['to_date']:
|
||||
pay_to_date.append(line.amount)
|
||||
|
||||
amount = sum(pay_to_date)
|
||||
if amount >= sale.total_amount:
|
||||
continue
|
||||
amount_to_pay = sale.total_amount - amount
|
||||
sale.amount_to_pay = amount_to_pay
|
||||
else:
|
||||
amount_to_pay = sale.amount_to_pay
|
||||
amount_to_pay = sale.residual_amount
|
||||
|
||||
if 'field_salesman' in data.keys() and data['field_salesman'] and sale.salesman:
|
||||
if sale.salesman.id not in salesmans.keys():
|
||||
|
@ -564,8 +565,8 @@ class PortfolioDetailedReport(Report):
|
|||
salesman = 'without_seller'
|
||||
else:
|
||||
salesman = 'without_seller'
|
||||
if invoice.party.id not in salesmans[salesman]['parties'].keys():
|
||||
salesmans[salesman]['parties'][invoice.party.id] = {
|
||||
if sale.party.id not in salesmans[salesman]['parties'].keys():
|
||||
salesmans[salesman]['parties'][sale.party.id] = {
|
||||
'party': sale.party,
|
||||
'invoices': [],
|
||||
'total_invoices': [],
|
||||
|
|
21
sale.xml
21
sale.xml
|
@ -71,5 +71,26 @@ this repository contains the full copyright notices and license terms. -->
|
|||
<field name="model">sale.sale,-1</field>
|
||||
<field name="action" ref="wizard_sale_change_processing"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="print_sale_portfolio_detailed_start_view_form">
|
||||
<field name="model">farming.portfolio_detailed.start</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">sale_portfolio_detailed_start_form</field>
|
||||
</record>
|
||||
<record model="ir.action.wizard" id="wizard_sale_portfolio_detailed">
|
||||
<field name="name">Sale Portfolio Detailed</field>
|
||||
<field name="wiz_name">farming.portfolio_detailed</field>
|
||||
</record>
|
||||
<record model="ir.action.report" id="report_sale_portfolio_detailed">
|
||||
<field name="name">Sale Portfolio Detailed</field>
|
||||
<field name="model">party.party</field>
|
||||
<field name="report_name">farming.portfolio_detailed.report</field>
|
||||
<field name="report">farming/portfolio_detailed.fods</field>
|
||||
<field name="template_extension">ods</field>
|
||||
<field name="translatable">False</field>
|
||||
</record>
|
||||
<menuitem parent="party.menu_party" action="wizard_sale_portfolio_detailed"
|
||||
id="menu_print_sale_portfolio_detailed" icon="tryton-print"/>
|
||||
|
||||
</data>
|
||||
</tryton>
|
||||
|
|
13
view/sale_portfolio_detailed_start_form.xml
Normal file
13
view/sale_portfolio_detailed_start_form.xml
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<form>
|
||||
<label name="type"/>
|
||||
<field name="type"/>
|
||||
<label name="company"/>
|
||||
<field name="company"/>
|
||||
<label name="to_date"/>
|
||||
<field name="to_date"/>
|
||||
<newline />
|
||||
<field name="parties" colspan="4"/>
|
||||
</form>
|
Loading…
Reference in a new issue