static function RecibosAgrupados($filtro) { $recibos = new RecibosClientes(); $clientes = new Clientes(); $tablaRecibos = $recibos->getDataBaseName() . "." . $recibos->getTableName(); $tablaClientes = $clientes->getDataBaseName() . "." . $clientes->getTableName(); $em = new EntityManager($recibos->getConectionName()); if ($em->getDbLink()) { $filtro .= " and (Remesar='1') and (CHAR_LENGTH(r.Iban)>23) and (r.Iban<>'ES8200000000000000000000')"; $query = "select r.IDCliente," . "sum(r.Importe) importe," . "r.Iban iban, " . "r.Bic bic, " . "r.Mandato idMandato, " . "r.FechaMandato fechaMandato " . "from {$tablaRecibos} as r " . "left join {$tablaClientes} as c on r.IDCliente=c.IDCliente " . "where {$filtro} " . "group by r.IDCliente,r.Iban " . "having sum(r.Importe)>0 " . "order by c.RazonSocial,r.Vencimiento ASC"; $em->query($query); $rows = $em->fetchResult(); } unset($em); unset($recibos); unset($clientes); $total = 0; foreach ($rows as $row) { $cliente = new Clientes($row['IDCliente']); $total += $row['importe']; $recibos[] = array('numeroFactura' => 'Varias', 'importe' => $row['importe'], 'idMandato' => $row['idMandato'], 'fechaMandato' => $row['fechaMandato'], 'bic' => $row['bic'] == '' ? "BBBBESPP" : $row['bic'], 'iban' => $row['iban'], 'razonSocial' => $cliente->getRazonSocial(), 'direccion1' => $cliente->getDireccion(), 'direccion2' => $cliente->getIDPoblacion()->getMunicipio() . " " . $cliente->getCodigoPostal() . " " . $cliente->getIDProvincia()->getProvincia(), 'pais' => $cliente->getIDPais()->getCodigo(), 'texto' => "Varias Facturas"); } unset($cliente); return array('nRecibos' => count($rows), 'importeTotal' => $total, 'recibos' => $recibos); }
/** * Recibe un objeto cliente y devuelve un objeto subcuenta * con los datos del cliente * * @param Clientes Objeto Cliente * @return ContaPlusSubcta Objeto Subcuenta */ private function SubcuentaCliente(Clientes $cliente) { $subCta = new ContaPlusSubctaV8(); $subCta->setCodigo($cliente->getCContable()); $subCta->setTitulo($cliente->getRazonSocial()); $subCta->setNif($cliente->getCif()); $subCta->setDomicilio($cliente->getDireccion()); $subCta->setPoblacion($cliente->getIDPoblacion()); $subCta->setProvincia($cliente->getIDProvincia()->getProvincia()); $subCta->setCodPostal($cliente->getCodigoPostal()); $subCta->setCodPais($cliente->getIDPais()->getCodigo()); return $subCta; }