private function cron_job() { $pago = new pago(); $pago->cron_job(); $recibo = new recibo_cliente(); $recibo->cron_job(); $sql = "SELECT * FROM facturascli WHERE NOT pagada AND idfactura NOT IN (SELECT idfactura FROM reciboscli)"; $data = $this->db->select_limit($sql, FS_ITEM_LIMIT, 0); if ($data) { foreach ($data as $d) { $this->factura = new factura_cliente($d); /// generamos los recibos a partir de los pagos en pedidos y albaranes $this->generar_recibos_pagos(); $this->resultados = $recibo->all_from_factura($this->factura->idfactura); $this->sync_factura(); } } }
private function pagar_facturas() { $num = 0; /// ¿Generamos el asiento de pago? $asientop = NULL; if ($this->empresa->contintegrada) { /// ¿Cuanto es el total? $coddivisa = NULL; $importe = 0; $tasaconv = 1; $rec0 = new recibo_cliente(); foreach ($_POST['idfactura'] as $id) { $recibos = $rec0->all_from_factura($id); foreach ($recibos as $recibo) { if ($recibo->estado != 'Pagado') { $coddivisa = $recibo->coddivisa; $importe += $recibo->importe; $tasaconv = $recibo->tasaconv; } } } $asientop = $this->nuevo_asiento_pago($importe, $coddivisa, $tasaconv); } $fac0 = new factura_cliente(); foreach ($_POST['idfactura'] as $id) { $error = FALSE; $recibos = $rec0->all_from_factura($id); foreach ($recibos as $recibo) { if ($recibo->estado != 'Pagado') { $pago = new pago_recibo_cliente(); $pago->idrecibo = $recibo->idrecibo; if ($asientop) { $pago->idasiento = $asientop->idasiento; } if ($pago->save()) { $recibo->estado = 'Pagado'; if (!$recibo->save()) { $error = TRUE; } } } } if (!$error) { /// marcamos la factura como pagada $factura = $fac0->get($id); if ($factura) { $factura->pagada = TRUE; if ($factura->save()) { $num++; } } } } $this->new_message($num . ' facturas marcadas como pagadas, estas son las siguientes.'); }