Compare commits

...

2 Commits

Author SHA1 Message Date
Wilson Gomez fd42a9aac6 minor fix add field party in report moves account for sale 2023-07-28 16:06:01 -05:00
Wilson Gomez fe28013443 add wizard delete or cancel sales
in draft witout lines
2023-07-28 15:31:38 -05:00
5 changed files with 85 additions and 14 deletions

View File

@ -63,6 +63,7 @@ def register():
account.SaleAccountMoves,
sale.SaleDetailed,
sale.SaleForceDraft,
sale.DeleteSalesDraft,
sale.SaleUpdateDate,
sale.SalesCosts,
shop.ShopDailySummary,

View File

@ -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
View File

@ -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'

View File

@ -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>

View File

@ -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>