Пример #1
0
 public function delete()
 {
     /// desvinculamos la factura
     $fac = $this->get_factura();
     if ($fac) {
         if ($fac->idasiento == $this->idasiento) {
             $fac->idasiento = NULL;
             $fac->save();
         }
     }
     /////////  pone en "0" pagada en factura
     $fact_prov = new factura_proveedor();
     $recibo = new recibo_proveedor();
     $orden = new orden_prov();
     $valor = new valores();
     $data = $recibo->get_por_idasiento($this->idasiento);
     /////  pone en proceso la orden
     foreach ($data as $d) {
         //				$fact_data = $fact_prov->get($d->idfactura);
         //				$fact_data->pagada = 0;
         //				$fact_data->save();
         $idorden = $d->idorden;
         $orden->cambio_estado($idorden, 'Proceso');
         /// pone idasiento en recibos
         $recibo->guardar_asiento_idorden($idorden, NULL);
         /// pone idasiento en valores
         $valor->guardar_asiento_idorden($idorden, NULL);
     }
     ///////////////////////////////////////////
     /////////elimina los recibos según el idasiento
     //		if(!$recibo->delete_recibo_idasiento($this->idasiento))  $this->new_error_msg("Error - No se borraron los recibos");
     //////// elimina la orden según el idasiento
     //		$orden->cambio_estado($orden->idorden,'Proceso');
     //		if(!$orden->delete_orden_idasiento($this->idasiento)) $this->new_error_msg("Error - No se borraron las ordenes");
     /// eliminamos las partidas una a una para forzar la actualización de las subcuentas asociadas
     foreach ($this->get_partidas() as $p) {
         $p->delete();
     }
     return $this->db->exec("DELETE FROM " . $this->table_name . " WHERE idasiento = " . $this->var2str($this->idasiento) . ";");
 }