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 |
5 changed files with 85 additions and 14 deletions
|
@ -63,6 +63,7 @@ def register():
|
|||
account.SaleAccountMoves,
|
||||
sale.SaleDetailed,
|
||||
sale.SaleForceDraft,
|
||||
sale.DeleteSalesDraft,
|
||||
sale.SaleUpdateDate,
|
||||
sale.SalesCosts,
|
||||
shop.ShopDailySummary,
|
||||
|
|
41
account.py
41
account.py
|
@ -14,6 +14,7 @@ class SaleAccountMovesStart(ModelView):
|
|||
start_date = fields.Date('Start Date', required=True)
|
||||
end_date = fields.Date('End Date', required=True)
|
||||
shop = fields.Many2One('sale.shop', 'Shop', required=True)
|
||||
party = fields.Many2One('party.party', 'Party')
|
||||
|
||||
@staticmethod
|
||||
def default_company():
|
||||
|
@ -35,7 +36,8 @@ class SaleAccountMoves(Wizard):
|
|||
'company': self.start.company.id,
|
||||
'start_date': self.start.start_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
|
||||
|
||||
|
@ -70,26 +72,37 @@ class SaleAccountMovesReport(Report):
|
|||
company = Company(data['company'])
|
||||
shop = Shop(data['shop'])
|
||||
|
||||
statements = Statement.search([
|
||||
('sale_device.shop', '=', shop.id),
|
||||
dom_st = [
|
||||
('sale_device.shop', '=', data['shop']),
|
||||
('date', '>=', data['start_date']),
|
||||
('date', '<=', data['end_date']),
|
||||
])
|
||||
|
||||
_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([
|
||||
]
|
||||
dom_invoice = [
|
||||
('shop', '=', data['shop']),
|
||||
('invoice_date', '>=', data['start_date']),
|
||||
('invoice_date', '<=', data['end_date']),
|
||||
('move', '!=', None),
|
||||
('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:
|
||||
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['company'] = Company(data['company'])
|
||||
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"
|
||||
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>
|
||||
|
||||
</tryton>
|
||||
|
|
|
@ -10,4 +10,7 @@ this repository contains the full copyright notices and license terms. -->
|
|||
<field name="start_date"/>
|
||||
<label name="end_date"/>
|
||||
<field name="end_date"/>
|
||||
<label name="party"/>
|
||||
<field name="party"/>
|
||||
|
||||
</form>
|
||||
|
|
Loading…
Reference in a new issue