account_bank_statement_line.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  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. from cashbox_input import verify_casboxin, writer_casboIn
  38. from cashbox_output import verify_casbox_out,writer_casboOut
  39. messageDelet = ""
  40. messageWrite = ""
  41. if (value['linesDeleted']):
  42. make_info_log('Unlink Statement Line')
  43. for line in request.env[_MODEL].search([('id', 'in', value['linesDeleted'])]):
  44. ## line Transferencia.
  45. transfer = verify_transfer(line.id)
  46. if (transfer):
  47. if (transfer['statementConfirm']):
  48. messageDelet += "No se puede eliminar la linea (%s), Obs. (%s)" %(line.name, transfer['messageConfirm'])
  49. continue
  50. statementName = line.statement_id.name
  51. ## Unlink Lines input
  52. unlink_statement_line(transfer['inputLine'])
  53. ## Unlink Lines output
  54. unlink_statement_line(transfer['outputLine'])
  55. ## Writer Transfer
  56. transferWriter = {
  57. 'message_deleted': "Transferencia eliminada por %s en %s ,caja %s" %((request.env.user.name), get_date(), statementName),
  58. 'active': False,
  59. 'write_uid': request.env.user.id
  60. }
  61. writer_cashbox_transfer(transfer['transferId'],transferWriter)
  62. else :
  63. inputOutput= {
  64. 'message_deleted': "Operacion eliminada por %s en %s caja %s" %(request.env.user.name,get_date(),line.statement_id.name),
  65. 'active': False
  66. }
  67. ## line Input
  68. inputCasbox = verify_casboxin(line.id)
  69. outPutCasbox= verify_casbox_out(line.id)
  70. # writer Input
  71. if(inputCasbox):
  72. writer_casboIn(inputCasbox.id, inputOutput)
  73. ## Writer outPut
  74. if(outPutCasbox):
  75. writer_casboOut(outPutCasbox.id, inputOutput)
  76. ## Unlink Line
  77. unlink_statement_line(line.id)
  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)