我有以下代码
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打开一个对话框并在里面加载该表单,它保存所有正确的。但事实是,不要关闭对话框
我真的不知道为什么会这样,任何想法/建议都会受到高度赞赏。我只需要关闭对话框。保存部分完成。提前致谢
答案 0 :(得分:0)
我已经解决了这个问题,问题是在ctp中'更新'选择错误,我选择了错误的ID,我的错。这个代码的作品,希望这有帮助的人