# -*- coding: utf-8 -*- from openerp.http import request from eiru_logging import make_info_log _MODEL= 'account.bank.statement.line' ''' Get Line statement ''' def get_line_statement(statementId): from res_partner import get_partner_name lines= ''' SELECT line.id as id, line.date, line.name, line.ref, line.amount, line.partner_id FROM account_bank_statement_line as line WHERE line.statement_id = %s ''' request.cr.execute(lines,[statementId]) return [{ 'id': line[0], 'date': line[1], 'name': line[2], 'ref': line[3], 'amount': line[4], 'partnerId': line[5], 'partnerNane': get_partner_name(line[5]) or '' } for line in request.cr.fetchall()] ''' Create Statement line ''' def create_statement_line(values): return request.env[_MODEL].sudo().create(values) ''' Modify statement line ''' def modify_statement_line(value): ''' DELETED ''' from cashbox_transfer import verify_transfer, writer_cashbox_transfer from server_datetime import get_date from cashbox_input import verify_casboxin, writer_casboIn from cashbox_output import verify_casbox_out,writer_casboOut messageDelet = "" messageWrite = "" if (value['linesDeleted']): make_info_log('Unlink Statement Line') for line in request.env[_MODEL].search([('id', 'in', value['linesDeleted'])]): ## line Transferencia. transfer = verify_transfer(line.id) if (transfer): if (transfer['statementConfirm']): messageDelet += "No se puede eliminar la linea (%s), Obs. (%s)" %(line.name, transfer['messageConfirm']) continue statementName = line.statement_id.name ## Unlink Lines input unlink_statement_line(transfer['inputLine']) ## Unlink Lines output unlink_statement_line(transfer['outputLine']) ## Writer Transfer transferWriter = { 'message_deleted': "Transferencia eliminada por %s en %s ,caja %s" %((request.env.user.name), get_date(), statementName), 'active': False, 'write_uid': request.env.user.id } writer_cashbox_transfer(transfer['transferId'],transferWriter) else : inputOutput= { 'message_deleted': "Operacion eliminada por %s en %s caja %s" %(request.env.user.name,get_date(),line.statement_id.name), 'active': False } ## line Input inputCasbox = verify_casboxin(line.id) outPutCasbox= verify_casbox_out(line.id) # writer Input if(inputCasbox): writer_casboIn(inputCasbox.id, inputOutput) ## Writer outPut if(outPutCasbox): writer_casboOut(outPutCasbox.id, inputOutput) ## Unlink Line unlink_statement_line(line.id) ''' UPDATE ''' if (value['lineUpdate']): make_info_log('Write Statement Line') for update in value['lineUpdate']: lineStatement = request.env[_MODEL].browse(update['id']) if (lineStatement): lines = { 'amount': update['amount'], 'date': update['date'], 'name': update['name'], 'partner_id': update['partnerId'], 'ref':update['ref'], } write_statement_line(lineStatement, lines) return { 'state': True, 'message': '%s %s' %(messageDelet, messageWrite) } ''' UnLink ''' def unlink_statement_line(lineId): lineUnlink = request.env[_MODEL].browse(lineId) if (not lineUnlink): return False if(lineUnlink.is_deleted): lineUnlink.sudo().write({'is_deleted': False}) return lineUnlink.sudo().unlink() ''' Write ''' def write_statement_line(line, value): return line.sudo().write(value)