account_bank_statement_line.py 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. # -*- coding: utf-8 -*-
  2. from openerp.http import request
  3. from eiru_logging import make_info_log
  4. _MODEL= 'account.bank.statement.line'
  5. ''' Get Line statement '''
  6. def get_line_statement(statementId):
  7. from res_partner import get_partner_name
  8. lines= '''
  9. SELECT
  10. line.id as id,
  11. line.date,
  12. line.name,
  13. line.ref,
  14. line.amount,
  15. line.partner_id
  16. FROM account_bank_statement_line as line
  17. WHERE line.statement_id = %s
  18. '''
  19. request.cr.execute(lines,[statementId])
  20. return [{
  21. 'id': line[0],
  22. 'date': line[1],
  23. 'name': line[2],
  24. 'ref': line[3],
  25. 'amount': line[4],
  26. 'partnerId': line[5],
  27. 'partnerNane': get_partner_name(line[5]) or ''
  28. } for line in request.cr.fetchall()]
  29. ''' Create Statement line '''
  30. def create_statement_line(values):
  31. return request.env[_MODEL].sudo().create(values)
  32. ''' Modify statement line '''
  33. def modify_statement_line(value):
  34. ''' DELETED '''
  35. from cashbox_transfer import verify_transfer, writer_cashbox_transfer
  36. from server_datetime import get_date
  37. messageDelet = ""
  38. messageWrite = ""
  39. if (value['linesDeleted']):
  40. make_info_log('Unlink Statement Line')
  41. for line in request.env[_MODEL].search([('id', 'in', value['linesDeleted'])]):
  42. ## line Transferencia.
  43. transfer = verify_transfer(line.id)
  44. if (transfer):
  45. if (transfer['statementConfirm']):
  46. messageDelet += "No se puede eliminar la linea (%s), Obs. (%s)" %(line.name, transfer['messageConfirm'])
  47. continue
  48. ## Unlink Lines input
  49. unlink_statement_line(transfer['inputLine'])
  50. ## Unlink Lines output
  51. unlink_statement_line(transfer['outputLine'])
  52. ## Writer Transfer
  53. transferWriter = {
  54. 'message_deleted': "Transferencia eliminada por %s en %s ,caja %s" %((request.env.user.name), get_date(), line.statement_id.name),
  55. 'active': False,
  56. 'write_uid': request.env.user.id
  57. }
  58. writer_cashbox_transfer(transfer['transferId'],transferWriter)
  59. ## line Input
  60. ## line Output
  61. ## line Normal
  62. # if(line.is_deleted):
  63. # lineWrite={'is_deleted': False}
  64. # write_statement_line(line,lineWrite)
  65. #
  66. # unlink_statement_line(line)
  67. # import web_pdb; web_pdb.set_trace()
  68. # if(line.is_deleted):
  69. # lineWrite={'is_deleted': False}
  70. # write_statement_line(line,lineWrite)
  71. #
  72. # unlink_statement_line(line)
  73. # 'transferId'
  74. # 'statementConfirm'
  75. # 'messageConfirm'
  76. # 'inputLine'
  77. # 'outputLine'
  78. ''' UPDATE '''
  79. if (value['lineUpdate']):
  80. make_info_log('Write Statement Line')
  81. for update in value['lineUpdate']:
  82. lineStatement = request.env[_MODEL].browse(update['id'])
  83. if (lineStatement):
  84. lines = {
  85. 'amount': update['amount'],
  86. 'date': update['date'],
  87. 'name': update['name'],
  88. 'partner_id': update['partnerId'],
  89. 'ref':update['ref'],
  90. }
  91. write_statement_line(lineStatement, lines)
  92. return {
  93. 'state': True,
  94. 'message': '%s %s' %(messageDelet, messageWrite)
  95. }
  96. ''' UnLink '''
  97. def unlink_statement_line(lineId):
  98. lineUnlink = request.env[_MODEL].browse(lineId)
  99. if (not lineUnlink):
  100. return False
  101. if(lineUnlink.is_deleted):
  102. lineUnlink.sudo().write({'is_deleted': False})
  103. return lineUnlink.sudo().unlink()
  104. ''' Write '''
  105. def write_statement_line(line, value):
  106. return line.sudo().write(value)