~openerp-spain-team/openerp-spain/4.2-git

« back to all changes in this revision

Viewing changes to l10n_es_extras/l10n_ES_remesas/remesas.py

  • Committer: Jordi Esteve
  • Date: 2009-09-25 18:57:58 UTC
  • Revision ID: git-v1:de7bb332c6833088efbf46d1c1a4dab8336a6a37
[FIX] l10n_ES_remesas: Creación asientos remesas con 'amount_currency': 0. Conciliación asientos remesas con cuenta like '67800%0' y diario ilike '%general%' para el posible desfase

Show diffs side-by-side

added added

removed removed

Lines of Context:
205
205
                'name': name,
206
206
                'debit': direction == 1 and (recibo.debit - recibo.credit),
207
207
                'credit': direction == -1 and (recibo.debit - recibo.credit),
 
208
                'amount_currency': 0,
208
209
                'account_id': src_account_id,
209
210
                'partner_id': recibo.partner_id['id'],
210
211
                'date': rem[0]['fecha_cargo'],
221
222
            'name':name,
222
223
            'debit': direction == -1 and importe_total,
223
224
            'credit': direction == 1 and importe_total,
 
225
            'amount_currency': 0,
224
226
            'account_id': dst_account_id,
225
227
            'partner_id': rem[0]['cuenta_id'].partner_id.id, # PRC
226
228
            #'partner_id': rem[0]['banco'].partner_id.id, 
248
250
#        Para cada recibo de la remesa, localizamos el apunte del pago y conciliamos. Si no encontramos el pago, avisamos.
249
251
        line = self.pool.get('account.move.line')
250
252
 
 
253
        # Cuenta desajuste conciliación
 
254
        account_obj = self.pool.get('account.account')
 
255
        acc_ids = account_obj.search(cr, uid, [('code', '=like', '67800%0')])
 
256
        cuenta = acc_ids and acc_ids[0] or False
 
257
        if not cuenta:
 
258
            raise osv.except_osv('Error del usuario', 'No existe una cuenta con código 67800...0 para crear los asientos de desajuste.')
 
259
 
 
260
        # Diario desajuste conciliación
 
261
        journal_obj = self.pool.get('account.journal')
 
262
        jou_ids = journal_obj.search(cr, uid, [('name', 'ilike', '%general%')])
 
263
        diario = jou_ids and jou_ids[0] or False
 
264
        if not diario:
 
265
            raise osv.except_osv('Error del usuario', 'No existe un diario llamado ...general... donde crear los asientos de desajuste.')
 
266
 
 
267
        periodo =self._get_period(cr,uid,ids,context)['period_id']
 
268
 
251
269
        for recibo in rem[0]['receipts']:
252
270
            cr.execute('select id from account_move_line where move_id = '+str(move_id)+' and partner_id ='+str(recibo.partner_id.id)+' and ref= \''+str(recibo.ref)+'\' and debit = '+str(recibo.credit)+' and credit = '+str(recibo.debit)+' and state <> \''+str('reconciled')+'\' limit 1')
253
271
            lines = line.browse(cr, uid, map(lambda x: x[0], cr.fetchall()) )
254
272
            assert len(lines) == 1, "Error en el numero de recibos"
255
273
#            logger.notifyChannel('lines.id',netsvc.LOG_INFO, lines[0].id)
256
274
#            logger.notifyChannel('recibo.id',netsvc.LOG_INFO, recibo.id)
257
 
            self.pool.get('account.move.line').reconcile(cr, uid, [lines[0].id, recibo.id], 'remesa', 290, self._get_period(cr,uid,ids,context)['period_id'], 1, context)
 
275
            self.pool.get('account.move.line').reconcile(cr, uid, [lines[0].id, recibo.id], 'remesa', cuenta, periodo, diario, context)
258
276
 
259
277
#            asientos_ids += str(recibo.move_id.id) + ','
260
278
#            if recibo.account_id.id not in src_account_ids: