它不会关闭对话框但保存确定

时间:2016-09-12 16:25:43

标签: php jquery ajax cakephp cakephp-2.0

我有以下代码

function addpag() {
    $consulta = 'SELECT venc.ref, venc.proveedor, venc.moneda, 
    venc.vencimiento, venc.pago, venc.monto, venc.concepto, venc.id
    FROM   v_vencimientos venc
     Where (venc.vencimiento between "2015-12-12" and curdate()          
     and venc.pago <> "Vencida") or (venc.pago = "Vencida") ';
    $datos = $this->ComprobantesCompra->query($consulta);
    if (!isset($saved)) {
        $this->set('saved', false);
    } else {
        $this->set('saved', $saved);
    }

    $this->set('datos', $datos);
    $this->layout = 'ajax';        
    App::import('Model', 'Pago');
    App::import('Model', 'PagosDetalle');
    App::import('Model', 'FormasPago');     
    App::import('Model', 'ComprobantesComprasAsociado');            

    if (!empty($this->request->data)) {
        $this->set('saved', true);          
        $Pagos['Pago'] = $this->request->data['Pagos'];   
        $i = 0;
        $aux = array(); 

        while ($i  <  sizeof($Pagos['Pago']) )
        {
            if (isset($Pagos['Pago'][$i+4]['selec'])) {
                $valor = true;
            } else {
                $valor = false;
            }

            $aux[] =array(  'id' => $Pagos['Pago'][$i]['id'],
                            'monto' => $Pagos['Pago'][$i+1]['monto'],
                            'moneda_id' => $Pagos['Pago'][$i+2]['moneda_id']
                            'selec' => $valor,
                            'fecha' => date('Y-m-d'),
                            'pago_cuenta' => 0
            );

            if ($valor) {
                $i += 5;
            } else {
                $i+=4;
            }                                       
        }

        $consecutivo = 0;

        foreach ($aux as $detalle) {                 
            //si se selecciono para ser pagado ingrese y realice el pago
            if ($detalle['selec']) {
                $consecutivo++; 
                $pag = new Pago();
                $pag->create();
                $pag->set('numero', date('Ymd') . $consecutivo);
                $pag->set('proveedor_id', $this->ComprobantesCompra->getProveedorCompra($detalle['id']));
                $pag->set('moneda_id', $detalle['moneda_id']);
                $pag->set('pago_cuenta', $detalle['pago_cuenta']);
                $pag->set('fecha', $detalle['fecha']);
                $pag->set('monto', trim($detalle['monto']));
                if (!$pag->save()) {
                    debug($pag->validationErrors);
                } else {
                    $this->set('saved', true);
                }

                $id_pago = $pag->getInsertID();

                $fpp = new FormasPago();
                $fpp->create();
                $fpp->set('tipo_pago', 'Efectivo');
                $fpp->set('tipo_comprobante', 'P');
                $fpp->set('moneda_id', $detalle['moneda_id']);
                $fpp->set('cant_pagos', 1);
                $fpp->set('importe', trim($detalle['monto']));
                $fpp->set('comprobante_id', $id_pago);
                if (!$fpp->save()) {
                    debug($fpp->validationErrors);
                }

                $pagdet = new PagosDetalle();
                $pagdet->create();
                $pagdet->set('pagos_id', $id_pago);
                $pagdet->set('comprobantes_compra_id', $detalle['id']);
                $pagdet->set('monto', trim($detalle['monto']));

                if (!$pagdet->save()) {
                    debug($pagdet->validationErrors);
                }                                       

                $cca = new ComprobantesComprasAsociado();
                $pgd = new PagosDetalle();

                //1ERO OBTENEMOS EL COMPROBANTE
                $comprobante = $this->ComprobantesCompra->read(null, $detalle['id']);
                $comprobante->id = $detalle['id'];
                //2DO SUMAMOS RECIBOS
                $sumarc = $pgd->find('all', array('conditions' => 
                array('PagosDetalle.comprobantes_compra_id' => $detalle['id']), 
                'fields' => array('sum(PagosDetalle.monto) AS suma')));
                $recibos = $sumarc[0][0]['suma'];

                //3ERO SUMAMOS NOTAS DE CREDITO ASOCIADAS AL COMPROBANTE
                $ncreditos = $cca->sumarNC($detalle['id']);

                //4TO ACTUALIZAMOS
                $saldo = $comprobante['ComprobantesCompra']['monto_total'] - $recibos - $ncreditos;

                if ($saldo <= 0) {
                    $estado = 'Paga';
                } else {
                    if ($comprobante['ComprobantesCompra']['monto_total'] == $saldo) {
                        $estado = 'Pendiente';
                    } else {
                        $estado = 'Parcialmente';
                    }                
                }

                $comprobante->set('estado', $estado);
                $comprobante->set('saldo', $saldo);
                if (!$comprobante->save()) {
                    $this->set('errors', $comprobante->validationErrors);
                }                                       
            }           
        }   
        $this->set('saved', true);                  
    }        
}

这是我的控制器功能

1270px

这是事情,我用ajax打开一个对话框并在里面加载该表单,它保存所有正确的。但事实是,不要关闭对话框

enter image description here

enter image description here

我真的不知道为什么会这样,任何想法/建议都会受到高度赞赏。我只需要关闭对话框。保存部分完成。提前致谢

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题,问题是在ctp中'更新'选择错误,我选择了错误的ID,我的错。这个代码的作品,希望这有帮助的人