/**
  * Guarda todos los recibos que le vienen en el request y
  * comprueba el cuadre entre el importe total de todos los
  * recibos de cada factura y el importe total de la factura
  *
  * @return array
  */
 public function guardarAction()
 {
     if ($this->values['permisos']['permisosModulo']['UP']) {
         $arrayFacturas = array();
         foreach ($this->request['RecibosProveedores'] as $recibo) {
             $objeto = new RecibosProveedores($recibo['IDRecibo']);
             $objeto->setVencimiento($recibo['Vencimiento']);
             $objeto->setImporte($recibo['Importe']);
             $objeto->setIban($recibo['Iban']);
             $objeto->setConcepto($recibo['Concepto']);
             $objeto->setIDRemesa($recibo['IDRemesa']);
             $objeto->setIDEstado($recibo['IDEstado']);
             $objeto->save();
             // Guardo temporalmente todas las facturas afectadas
             $arrayFacturas[] = $objeto->getIDFactura()->getIDFactura();
         }
         unset($objeto);
         // Comprobar cuadre recibos-factura
         $arrayFacturas = array_unique($arrayFacturas);
         foreach ($arrayFacturas as $idFactura) {
             $factura = new FrecibidasCab($idFactura);
             $totalFactura = $factura->getTotal();
             $sumaRecibos = $factura->getSumaRecibos();
             if ($totalFactura != $sumaRecibos) {
                 $diferencia = $totalFactura - $sumaRecibos;
                 $this->values['errores'][] = "Descuadre en factura {$factura->getNumeroFactura()}";
                 $this->values['errores'][] = "Total Factura: {$totalFactura}";
                 $this->values['errores'][] = "Suma Recibos {$sumaRecibos}.";
                 $this->values['errores'][] = "Diferencia {$diferencia}";
             }
         }
         unset($factura);
         return $this->listAction();
     } else {
         return array('template' => '_global/forbiden.html.twig');
     }
 }
 private function ApunteDetallePago($nAsiento, $fecha, array $cabecera)
 {
     $filtro = "IDProveedor='{$cabecera['IDProveedor']}' and Vencimiento='{$cabecera['Vencimiento']}' and IDRemesa='{$cabecera['IDRemesa']}' and IDEstado='{$cabecera['IDEstado']}'";
     $recibo = new RecibosProveedores();
     $recibos = $recibo->cargaCondicion("*", $filtro);
     unset($recibo);
     $proveedor = new Proveedores($cabecera['IDProveedor']);
     foreach ($recibos as $recibo) {
         $recibo = new RecibosProveedores($recibo['IDRecibo']);
         $apunte = new ContaPlusDiarioV10($nAsiento, $fecha);
         $apunte->setSubCta($proveedor->getCContable());
         $apunte->setContra($recibo->getCContable());
         $apunte->setConcepto("Pag Ftra Proveedor " . $proveedor->getRazonSocial());
         $apunte->setDocumento($recibo->getIDFactura()->getSuFactura());
         $apunte->setEuroDebe($recibo->getImporte());
         $apuntes[] = $apunte;
     }
     unset($apunte);
     unset($recibo);
     return $apuntes;
 }