diff --git a/models/account_move.py b/models/account_move.py index 55b6291..a3bb1e4 100755 --- a/models/account_move.py +++ b/models/account_move.py @@ -17,7 +17,7 @@ class AccountMove(models.Model): date_compta=fields.Datetime('date import',default=False) date_compta_out_refund=fields.Datetime('date import',default=False) out_invoice_id=fields.Many2one('account.move' ,ondelete="cascade",domain="[('partner_id','=',partner_id),('move_type','=','out_invoice'),('state','!=','paid')]") - + def _compute_description(self): for a in self: diff --git a/models/accounting_file.py b/models/accounting_file.py index 8975826..f3945a2 100755 --- a/models/accounting_file.py +++ b/models/accounting_file.py @@ -9,5 +9,6 @@ class accounting_file(models.Model): accounting_file = fields.Binary('accounting file', readonly=True) document_fname=fields.Char(default='undefined') exported_date=fields.Date(string='Exported Date',tracking=True, readonly=True) + start_date=fields.Date(string='Start Date',tracking=True, readonly=True) \ No newline at end of file diff --git a/models/event_registration.py b/models/event_registration.py index eef05c4..1a1dfe0 100755 --- a/models/event_registration.py +++ b/models/event_registration.py @@ -16,6 +16,95 @@ class EventRegistration(models.Model): headphone=fields.Boolean('headphone') date_compta=fields.Datetime('date import',default=False) date_compta_down_payment=fields.Datetime('date import down payment',default=False) + + date_payment=fields.Date('date payment',compute='_compute_event_date_payment') + date_payment_down_payment=fields.Date('date payment down payment',compute='_compute_event_date_payment_down_payment') + date_payment_balance=fields.Date('date payment balance',compute='_compute_event_date_payment_balance') + date_payment_end_of_stay=fields.Date('date payment end of stay',compute='_compute_event_date_payment_end_of_stay') + + def _compute_event_date_payment(self): + for rec in self: + if not rec.booking_event: + if rec.invoice_id.invoice_payments_widget: + payment_info=json.loads(rec.invoice_id.invoice_payments_widget) + if payment_info: + rec.date_payment= payment_info['content'][0]['date'] + + else: + rec.date_payment=False + else: rec.date_payment=False + #booking event + else: + if rec.invoice_id: + if rec.invoice_id.invoice_payments_widget: + payment_info=json.loads(rec.invoice_id.invoice_payments_widget) + if payment_info: + rec.date_payment= payment_info['content'][0]['date'] + else : rec.date_payment=False + else :rec.date_payment=False + else: + rec.date_payment=False + def _compute_event_date_payment_down_payment(self): + for rec in self: + if not rec.booking_event: + rec.date_payment_down_payment=False + else: + + if rec.down_payment_invoice_id: + if rec.down_payment_invoice_id.invoice_payments_widget: + payment_info=json.loads(rec.down_payment_invoice_id.invoice_payments_widget) + if payment_info: + rec.date_payment_down_payment= payment_info['content'][0]['date'] + else : rec.date_payment_down_payment=False + else :rec.date_payment_down_payment=False + else: + rec.date_payment_down_payment=False + def _compute_event_date_payment_balance(self): + for rec in self: + if not rec.booking_event: + rec.date_payment_balance=False + else: + + if rec.balance_invoice_id: + if rec.balance_invoice_id.invoice_payments_widget: + payment_info=json.loads(rec.balance_invoice_id.invoice_payments_widget) + if payment_info: + rec.date_payment_balance= payment_info['content'][0]['date'] + else : rec.date_payment_balance=False + else :rec.date_payment_balance=False + else: + rec.date_payment_balance=False + def _compute_event_date_payment_end_of_stay(self): + for rec in self: + if not rec.booking_event: + rec.date_payment_end_of_stay=False + else: + + if rec.end_of_stay_invoice_id: + if rec.end_of_stay_invoice_id.invoice_payments_widget: + payment_info=json.loads(rec.end_of_stay_invoice_id.invoice_payments_widget) + if payment_info: + rec.date_payment_end_of_stay= payment_info['content'][0]['date'] + else : rec.date_payment_end_of_stay=False + else :rec.date_payment_end_of_stay=False + else: + rec.date_payment_end_of_stay=False + + def action_cancel(self): + self.write({'state': 'cancel'}) + #annulation des factures non payées + # if self.invoice_id : + # if self.invoice_id.payment_state!='paid': + # self.invoice_id.button_draft() + # if self.down_payment_invoice_id : + # if self.down_payment_invoice_id.payment_state!='paid': + # self.down_payment_invoice_id.button_draft() + + #création d'un avoir pour les factures déjà réglées + # if self.down_payment_invoice_id : + # if self.down_payment_invoice_id.payment_state=='paid': + # self.down_payment_invoice_id.button_draft() + def create(self,vals): diff --git a/views/account.xml b/views/account.xml index 224e62a..a772215 100644 --- a/views/account.xml +++ b/views/account.xml @@ -34,6 +34,7 @@ + diff --git a/views/accounting_file.xml b/views/accounting_file.xml index b574610..d333092 100755 --- a/views/accounting_file.xml +++ b/views/accounting_file.xml @@ -8,6 +8,7 @@ + @@ -29,6 +30,7 @@ + diff --git a/views/booking_event_registration.xml b/views/booking_event_registration.xml index 9b63d37..9e05109 100755 --- a/views/booking_event_registration.xml +++ b/views/booking_event_registration.xml @@ -129,8 +129,15 @@ + + + + + + + diff --git a/views/event_registration.xml b/views/event_registration.xml index 140748f..57ab1d5 100755 --- a/views/event_registration.xml +++ b/views/event_registration.xml @@ -28,6 +28,7 @@ + diff --git a/wizard/accounting_file_wizard.py b/wizard/accounting_file_wizard.py index bbd6b09..5dc05c9 100644 --- a/wizard/accounting_file_wizard.py +++ b/wizard/accounting_file_wizard.py @@ -12,6 +12,7 @@ code_journal='IN' date_compta=fields.datetime.now() total_debit=total_credit=0 no_mvt=1 +debug=True class AccountingFileWizard(models.TransientModel): _name = 'accounting.file.wizard' @@ -58,24 +59,25 @@ class AccountingFileWizard(models.TransientModel): total_credit=0 #debug - donation=self.env['donation.donation'].search([]) - for d in donation: - d.date_compta=False - membership=self.env['kalachakra.membership'].search([]) - for m in membership: - m.date_compta=False - reg=self.env['event.registration'].search([]) - for r in reg: - r.date_compta=False - r.date_compta_down_payment=False - invoices=self.env['account.move'].search([]) - for i in invoices: - i.date_compta_out_refund=False - i.date_compta=False - + # if debug: + # donation=self.env['donation.donation'].search([]) + # for d in donation: + # d.date_compta=False + # membership=self.env['kalachakra.membership'].search([]) + # for m in membership: + # m.date_compta=False + # reg=self.env['event.registration'].search([]) + # for r in reg: + # r.date_compta=False + # r.date_compta_down_payment=False + # invoices=self.env['account.move'].search([]) + # for i in invoices: + # i.date_compta_out_refund=False + # i.date_compta=False + # return True tmstp=secrets.token_hex(16) - filename='/tmp/accounting_file_'+tmstp+'.txt' + filename='/tmp/accounting_file_'+tmstp+'.csv' f = open(filename, "a") @@ -97,7 +99,7 @@ class AccountingFileWizard(models.TransientModel): self.membership_lines(f) self.event_lines(f) self.booking_event_lines(f) - #self.out_refund_lines(f) + self.out_refund_lines(f) fic_line="TOTAL_DEBIT="+str(total_debit)+ " TOTAL CREDIT="+str(total_credit) f.write(fic_line) @@ -107,8 +109,9 @@ class AccountingFileWizard(models.TransientModel): #raise UserError('gg'+f.read()) vals={} vals['accounting_file']=base64.encodebytes(data) - vals['document_fname']='export_comptable.txt' + vals['document_fname']='export_comptable.csv' vals['exported_date']=fields.Date.context_today(self) + vals['start_date']=self.start_date res=self.env['accounting.file'].create(vals) f.close os.unlink(filename) @@ -165,11 +168,18 @@ class AccountingFileWizard(models.TransientModel): donation=self.env['donation.donation'].search([('date_compta','=',False),('state','=','done')]) #raise UserError(donation) for d in donation: - if datetime(d.donation_date.year, d.donation_date.month, d.donation_date.day)self.start_date: - return False + _logger.error(payment_info['content'][0]['date']) + if datetime.strptime(payment_info['content'][0]['date'],'%Y-%m-%d')>=self.start_date: + return True else: - return True - else:return True + return False + else: + return False def _payment_date(self,move_id): if move_id.invoice_payments_widget: @@ -776,6 +808,8 @@ class AccountingFileWizard(models.TransientModel): #_logger.error('date='+str(data)) if data: r=str(data).split('-') + if len(r[2])==1:r[2]='0'+r[2] + if len(r[1])==1:r[1]='0'+r[1] return r[2]+'/'+r[1]+'/'+r[0] else: