Hola comunidad, ante todo gracias por la ayuda que me puedan ofrecer en este tema.
El problema es que estoy haciendo un procedimiento para pagar cheques y al pagar en otra tabla (facturas), se actualicen algunos campos:
Tengo las siguientes tablas:
1. docubancarios: Se guardan en los campos fecha: Fecha en que se paga una o varias factura por un documento bancario(Cheques, Letras de cambio, etc.), CodCliente: Cliente que paga la factura, hay otros pero no creo que interesen para este caso.
2. detallescheq: Se guardan los detalles del pago en los campos Id_che: Toma el numero del id (Llave primaria de la tabla docubancarios) y están relacionadas, nfactura: el número de las factura o facturas pagadas por el documento, valor: Importe pagado en cada factura.
3. facturas: Están las facturas a pagar por los campos Codfact: Llave primaria es campo incrementable, CodCliente: Cliente que paga la factura, CodPVen: Punto de venta al cual le pagan la factura, FPago: Fecha en que se pago la factura, Id_Estado: Estado del pago (1 si se pago, 2 si se canceló y 3 si no se a pagado)
En el controlador de docubancarios lo siguiente:
public function actionSalvarDocumento() {
$id=$_POST['modelid'];
if($id)
$model=$this->loadModel($id);
else
$model = new Docubancarios;
if(isset($_POST['detalle'])) {
//Lo que se guarda en tabla docubancarios
$model->fecha=$_POST['fecha'];
$model->CodCliente=$_POST['cliente'];
$model->CodMon=$_POST['codmon'];
$model->CodDocBan=$_POST['coddocban'];
$model->CodDoc=$_POST['coddoc'];
$model->Importe=$_POST['importe'];
if ($model->save()) {
Detallescheq::model()->deleteAll('Id_che=:id', array(':id'=>$model->id));
foreach($_POST['detalle'] as $item){
//Lo que se guarda en tabla Detallescheq
$detalle=new Detallescheq;
$detalle->Id_che=$model->id;
$detalle->nfactura=$item['producto'];
$detalle->valor=$item['cantidad'];
$detalle->save(); //hasta aquí trabaja bien
//para actualizar las facturas pagadas en tabla facturas
if(!$id){
$criteria=new CDbCriteria;
// $criteria->addCondition('CodCliente=:codcli');
$criteria->addCondition('nfactura=:fact');
$criteria->params=array(':fact'=>$item['nfactura']);//':codcli'=>$model->CodCliente,
$objSubmp = Facturas::model()->find($criteria);
$objSubmp->FPago = $objSubmp->$item['fecha'];
$objSubmp->Id_Estado = '1';
$objSubmp->save();
}
}
}
}
}
Este procedimiento trabaja bien hasta salvar los detalles, o sea guarda en la tabla docubancarios y en la tabla detallescheq, pero a la hora de actualizar las facturas pagadas en tabla facturas no lo hace, o sea debe tomar la fecha de pago
$model->fecha=$_POST['fecha'];
y ponerla en la tabla facturas en el campo FPago y debe poner al campo Id_Estado el valor 1, pero esto último no lo hace.
Espero sus sugerencias y muchas gracias por ellas.