mirror of
https://bitbucket.org/presik/trytonpsk-sale_pos.git
synced 2023-12-14 07:13:02 +01:00
Compare commits
2 commits
46403183a7
...
fd42a9aac6
Author | SHA1 | Date | |
---|---|---|---|
|
fd42a9aac6 | ||
|
fe28013443 |
|
@ -63,6 +63,7 @@ def register():
|
||||||
account.SaleAccountMoves,
|
account.SaleAccountMoves,
|
||||||
sale.SaleDetailed,
|
sale.SaleDetailed,
|
||||||
sale.SaleForceDraft,
|
sale.SaleForceDraft,
|
||||||
|
sale.DeleteSalesDraft,
|
||||||
sale.SaleUpdateDate,
|
sale.SaleUpdateDate,
|
||||||
sale.SalesCosts,
|
sale.SalesCosts,
|
||||||
shop.ShopDailySummary,
|
shop.ShopDailySummary,
|
||||||
|
|
41
account.py
41
account.py
|
@ -14,6 +14,7 @@ class SaleAccountMovesStart(ModelView):
|
||||||
start_date = fields.Date('Start Date', required=True)
|
start_date = fields.Date('Start Date', required=True)
|
||||||
end_date = fields.Date('End Date', required=True)
|
end_date = fields.Date('End Date', required=True)
|
||||||
shop = fields.Many2One('sale.shop', 'Shop', required=True)
|
shop = fields.Many2One('sale.shop', 'Shop', required=True)
|
||||||
|
party = fields.Many2One('party.party', 'Party')
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def default_company():
|
def default_company():
|
||||||
|
@ -35,7 +36,8 @@ class SaleAccountMoves(Wizard):
|
||||||
'company': self.start.company.id,
|
'company': self.start.company.id,
|
||||||
'start_date': self.start.start_date,
|
'start_date': self.start.start_date,
|
||||||
'end_date': self.start.end_date,
|
'end_date': self.start.end_date,
|
||||||
'shop': self.start.shop.id
|
'shop': self.start.shop.id,
|
||||||
|
'party': self.start.party.id
|
||||||
}
|
}
|
||||||
return action, data
|
return action, data
|
||||||
|
|
||||||
|
@ -70,26 +72,37 @@ class SaleAccountMovesReport(Report):
|
||||||
company = Company(data['company'])
|
company = Company(data['company'])
|
||||||
shop = Shop(data['shop'])
|
shop = Shop(data['shop'])
|
||||||
|
|
||||||
statements = Statement.search([
|
dom_st = [
|
||||||
('sale_device.shop', '=', shop.id),
|
('sale_device.shop', '=', data['shop']),
|
||||||
('date', '>=', data['start_date']),
|
('date', '>=', data['start_date']),
|
||||||
('date', '<=', data['end_date']),
|
('date', '<=', data['end_date']),
|
||||||
])
|
]
|
||||||
|
dom_invoice = [
|
||||||
_records = []
|
|
||||||
rec_extend = _records.extend
|
|
||||||
for st in statements:
|
|
||||||
for line in st.lines:
|
|
||||||
if line.move:
|
|
||||||
rec_extend(line.move.lines)
|
|
||||||
|
|
||||||
invoices = Invoice.search([
|
|
||||||
('shop', '=', data['shop']),
|
('shop', '=', data['shop']),
|
||||||
('invoice_date', '>=', data['start_date']),
|
('invoice_date', '>=', data['start_date']),
|
||||||
('invoice_date', '<=', data['end_date']),
|
('invoice_date', '<=', data['end_date']),
|
||||||
('move', '!=', None),
|
('move', '!=', None),
|
||||||
('type', '=', 'out'),
|
('type', '=', 'out'),
|
||||||
])
|
]
|
||||||
|
if data.get('party'):
|
||||||
|
dom_invoice.append(('party', '=', data['party']))
|
||||||
|
|
||||||
|
statements = Statement.search(dom_st)
|
||||||
|
|
||||||
|
_records = []
|
||||||
|
rec_extend = _records.extend
|
||||||
|
if data.get('party'):
|
||||||
|
for st in statements:
|
||||||
|
for line in st.lines:
|
||||||
|
if line.move and line.party.id == data['party']:
|
||||||
|
rec_extend(line.move.lines)
|
||||||
|
else:
|
||||||
|
for st in statements:
|
||||||
|
for line in st.lines:
|
||||||
|
if line.move:
|
||||||
|
rec_extend(line.move.lines)
|
||||||
|
|
||||||
|
invoices = Invoice.search(dom_invoice)
|
||||||
for inv in invoices:
|
for inv in invoices:
|
||||||
rec_extend(inv.move.lines)
|
rec_extend(inv.move.lines)
|
||||||
|
|
||||||
|
|
44
sale.py
44
sale.py
|
@ -2005,3 +2005,47 @@ class SalesAuditReport(Report):
|
||||||
report_context['shop'] = shop.name
|
report_context['shop'] = shop.name
|
||||||
report_context['company'] = Company(data['company'])
|
report_context['company'] = Company(data['company'])
|
||||||
return report_context
|
return report_context
|
||||||
|
|
||||||
|
|
||||||
|
class DeleteSalesDraft(Wizard):
|
||||||
|
'Delete Sales Draft'
|
||||||
|
__name__ = 'sale_pos.delete_sales_draft'
|
||||||
|
start_state = 'delete_sales_draft'
|
||||||
|
delete_sales_draft = StateTransition()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def __setup__(cls):
|
||||||
|
super(DeleteSalesDraft, cls).__setup__()
|
||||||
|
|
||||||
|
def transition_delete_sales_draft(self):
|
||||||
|
cursor = Transaction().connection.cursor()
|
||||||
|
Sale = Pool().get('sale.sale')
|
||||||
|
sales = Sale.search(['AND',
|
||||||
|
['OR', [
|
||||||
|
('state', '=', 'draft'),
|
||||||
|
('invoice_number', '=', ''),
|
||||||
|
('lines', '=', None),
|
||||||
|
('payments', '=', None)
|
||||||
|
], [
|
||||||
|
('state', '=', 'draft'),
|
||||||
|
('invoice_number', '=', None),
|
||||||
|
('lines', '=', None),
|
||||||
|
('payments', '=', None)
|
||||||
|
],
|
||||||
|
]])
|
||||||
|
sales_delete = []
|
||||||
|
sales_cancel = []
|
||||||
|
for sale in sales:
|
||||||
|
if sale.lines:
|
||||||
|
continue
|
||||||
|
if sale.payments:
|
||||||
|
continue
|
||||||
|
if sale.number:
|
||||||
|
sales_cancel.append(sale)
|
||||||
|
else:
|
||||||
|
sales_delete.append(str(sale.id))
|
||||||
|
Sale.cancel(sales_cancel)
|
||||||
|
if len(sales_delete) > 1:
|
||||||
|
cursor.execute("DELETE from sale_sale WHERE \
|
||||||
|
id in (%s)" % (', '.join(sales_delete)))
|
||||||
|
return 'end'
|
10
sale.xml
10
sale.xml
|
@ -271,6 +271,16 @@
|
||||||
action="wizard_print_sales_audit" sequence="210"
|
action="wizard_print_sales_audit" sequence="210"
|
||||||
icon="tryton-print"/>
|
icon="tryton-print"/>
|
||||||
|
|
||||||
|
<record model="ir.action.wizard" id="act_delete_sales_draft">
|
||||||
|
<field name="name">Delete Sales in Draft</field>
|
||||||
|
<field name="wiz_name">sale_pos.delete_sales_draft</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.keyword" id="action_delete_sales_draft_keyword">
|
||||||
|
<field name="keyword">form_action</field>
|
||||||
|
<field name="model">sale.sale,-1</field>
|
||||||
|
<field name="action" ref="act_delete_sales_draft"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
</tryton>
|
</tryton>
|
||||||
|
|
|
@ -10,4 +10,7 @@ this repository contains the full copyright notices and license terms. -->
|
||||||
<field name="start_date"/>
|
<field name="start_date"/>
|
||||||
<label name="end_date"/>
|
<label name="end_date"/>
|
||||||
<field name="end_date"/>
|
<field name="end_date"/>
|
||||||
|
<label name="party"/>
|
||||||
|
<field name="party"/>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
|
Loading…
Reference in a new issue